Microsoft ExcelでVBAを使用してデータに記載された名前ごとに別々のワークシートを作成します。
この記事では、データに記載されている名前ごとに個別のワークシートを作成するマクロを作成します。
生データは、名前、キャンペーンの詳細、処理された通話数で構成されます。
この例では、名前ごとに個別のワークシートを作成する必要があります。シートには、キャンペーンとエージェントによって処理された通話の数に関連するデータが含まれます。
ロジックの説明
この記事では、「AfterNamesCopying」マクロを作成しました。エージェント名に基づいて、データを異なるシートに分割します。データを分離するには、データ内の「名前」を確認し、「名前」行の下のデータをそれぞれのシートにコピーします。
コードの説明
Left(WksData.Cells(IntRow、1)、4)= “名前”
上記のコードは、セルの値が「name」で始まるかどうかを確認するために使用されます。
Right(WksData.Cells(IntRow、1)、Len(WksData.Cells(IntRow、1))– 5)
上記のコードは、セル値からエージェント名を抽出するために使用されます。
Worksheets.Add after:= Worksheets(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]までご連絡ください