In diesem Artikel erstellen wir ein Makro, um separate Arbeitsblätter für jeden in den Daten genannten Namen zu erstellen.

Die Rohdaten bestehen aus dem Namen, gefolgt von den Kampagnendetails und der Anzahl der bearbeiteten Anrufe.

ArrowRawData

In diesem Beispiel möchten wir für jeden Namen separate Arbeitsblätter erstellen. Das Blatt enthält Daten zu Kampagnen und zur Anzahl der vom Agenten bearbeiteten Anrufe.

ArrowOutput

Logische Erklärung

In diesem Artikel haben wir das Makro „AfterNamesCopying“ erstellt. Die Daten werden basierend auf dem Agentennamen in verschiedene Blätter unterteilt. Um die Daten zu trennen, prüfen wir die Daten auf „Name“ und kopieren die Daten unter der Zeile „Name“ auf das entsprechende Blatt.

Code Erklärung

Links (WksData.Cells (IntRow, 1), 4) = „name“

Der obige Code wird verwendet, um zu überprüfen, ob der Wert in einer Zelle mit „Name“ beginnt.

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

Der obige Code wird verwendet, um den Agentennamen aus dem Zellenwert zu extrahieren.

Arbeitsblätter.Add after: = Arbeitsblätter (Worksheets.Count)

Der obige Code wird verwendet, um nach dem letzten Arbeitsblatt ein neues Arbeitsblatt einzufügen.

ActiveSheet.Name = StrSheet Mit dem obigen Code wird das aktive Blatt umbenannt.

Bereich (.Cells (IntRowL, 1), .Cells (IntRowL, 3)). Wert = _ Bereich (WksData.Cells (IntRow, 1), WksData.Cells (IntRow, 3)). Wert Der obige Code wird verwendet, um Fügen Sie Daten hinzu, die sich auf diesen bestimmten Agenten beziehen.

Bitte folgen Sie unten für den Code

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

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]