Erstellen Sie separate Arbeitsblätter für jeden Namen in den Daten unter Verwendung von VBA in Microsoft Excel erwähnt.
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.
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.
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]