この記事では、データに記載されている名前ごとに個別のワークシートを作成するマクロを作成します。

生データは、名前、キャンペーンの詳細、処理された通話数で構成されます。

ArrowRawData

この例では、名前ごとに個別のワークシートを作成する必要があります。シートには、キャンペーンとエージェントによって処理された通話の数に関連するデータが含まれます。

ArrowOutput

ロジックの説明

この記事では、「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]までご連絡ください