在Microsoft Excel中使用VBA数据中提到的每个名称创建单独的工作。
在本文中,我们将创建一个宏,以为数据中提到的每个名称创建单独的工作表。
原始数据包括名称,其后的广告系列详细信息和已处理的致电数。
在此示例中,我们想为每个名称创建单独的工作表,并且该表将包含与广告系列和座席处理的呼叫数量相关的数据。
逻辑解释
在本文中,我们创建了“ 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]