在本文中,我们将创建一个宏,以为数据中提到的每个名称创建单独的工作表。

原始数据包括名称,其后的广告系列详细信息和已处理的致电数。

ArrowRawData

在此示例中,我们想为每个名称创建单独的工作表,并且该表将包含与广告系列和座席处理的呼叫数量相关的数据。

ArrowOutput

逻辑解释

在本文中,我们创建了“ AfterNamesCopying”宏。它将根据座席姓名将数据分为不同的工作表。为了分离数据,我们检查数据中的“名称”,并将“名称”行下方的数据复制到相应的工作表中。

代码说明

Left(WksData.Cells(IntRow,1),4)=“名称”

上面的代码用于检查单元格中的值是否以“名称”开头。

右(WksData.Cells(IntRow,1),Len(WksData.Cells(IntRow,1))– 5)

上面的代码用于从单元格值中提取代理名称。

在以下位置添加工作表:=工作表(Worksheets.Count)

上面的代码用于在最后一个工作表之后插入一个新的工作表。

ActiveSheet.Name = StrSheet上面的代码用于重命名活动工作表。

Range(.Cells(IntRowL,1),.Cells(IntRowL,3))。Value = _ Range(WksData.Cells(IntRow,1),WksData.Cells(IntRow,3))。Value上面的代码用于添加与该特定代理相关的数据。

请遵循以下代码

Option Explicit

Sub AfterNamesCopying()

'Declaring variables

Dim wks As Worksheet, WksData As Worksheet

Dim IntRow As Integer, IntRowL As Integer

Dim StrSheet As String

'Disabling screen updates

Application.ScreenUpdating = False

'Initializing variables

Set WksData = ActiveSheet

IntRow = 10

'Loop until cell in first column is empty

Do Until IsEmpty(WksData.Cells(IntRow, 1))



'Checking whether value in the cell begins with string "name"

If Left(WksData.Cells(IntRow, 1), 4) = "name" Then



'Extracting name from the cell value

StrSheet = Right(WksData.Cells(IntRow, 1), Len(WksData.Cells(IntRow, 1)) - 5)



'Adding new worksheet

Worksheets.Add after:=Worksheets(Worksheets.Count)



'Renaming the sheet

ActiveSheet.Name = StrSheet

IntRowL = 1



Else



With Worksheets(StrSheet)

'Inserting data to respective sheets

Range(.Cells(IntRowL, 1), .Cells(IntRowL, 3)).Value = _

Range(WksData.Cells(IntRow, 1), WksData.Cells(IntRow, 3)).Value

End With

IntRowL = IntRowL + 1

End If



IntRow = IntRow + 1

Loop

'Enabling screen updates

Application.ScreenUpdating = True

End Sub

如果您喜欢此博客,请在Facebook和Facebook上与您的朋友分享。

我们很希望收到您的来信,请让我们知道我们如何才能改善我们的工作并使您的工作更好。写信给我们[email protected]