Ich habe ein Makro, das in einer leeren Arbeitsmappe vorhanden ist. Jeden Tag Daten werden eingefügt und das Makro wird dann ausgeführt. Ein Teil des Makros ist, dass es die Datenquelle in einer Pivot-Tabelle aktualisiert und aktualisiert. Wenn ich die Daten einfügen und das Makro ausführen, wird die Fehlermeldung einer leeren Spaltenüberschrift ausgegeben. Das dynamische Element scheint nicht korrekt zu funktionieren.VBA Dynamischer Datenbereich in Pivot-Tabelle
Function PivotTable()
Dim Data_sht As Worksheet
Dim Pivot_sht As Worksheet
Dim StartPoint As range
Dim DataRange As range
Dim PivotName As String
Dim NewRange As String
'Set Variables Equal to Data Sheet and Pivot Sheet
Set Data_sht = ThisWorkbook.Worksheets("Sheet1")
Set Pivot_sht = ThisWorkbook.Worksheets("Pivot Table")
'Enter in Pivot Table Name
PivotName = "PivotTable"
'Dynamically Retrieve Range Address of Data
Set StartPoint = Data_sht.range("A1")
Set DataRange = Data_sht.range(StartPoint, StartPoint.SpecialCells(xlLastCell))
NewRange = Data_sht.Name & "!" & _
DataRange.Address(ReferenceStyle:=xlR1C1)
'Make sure every column in data set has a heading and is not blank (error prevention)
If WorksheetFunction.CountBlank(DataRange.Rows(1)) > 0 Then
MsgBox "One of your data columns has a blank heading." & vbNewLine _
& "Please fix and re-run!.", vbCritical, "Column Heading Missing!"
End If
'Change Pivot Table Data Source Range Address
Pivot_sht.PivotTables(PivotName).ChangePivotCache _
ThisWorkbook.PivotCaches.Create(_
SourceType:=xlDatabase, _
SourceData:=NewRange)
'Ensure Pivot Table is Refreshed
Pivot_sht.PivotTables(PivotName).RefreshTable
End Function
Ihre 'CountBlank'-Prüfung sollte' End' haben, wenn die Klausel ausgelöst wird, da ich vermute, dass Sie den Rest des Codes nicht ausführen möchten, wenn eine leere Spaltenüberschrift vorhanden ist. Haben Sie 'Debug.Print' gemacht, um sicherzustellen, dass die' DataRange'- und die 'NewRange'-Zeichenfolge richtig gesetzt sind? – kschindl
Es sieht für mich so aus, dass es funktioniert, wenn ich es ausführe. Wenn ich dann jedoch neue Daten einfüge, wird der ranee nicht korrekt aktualisiert. Die Anzahl der Spalten ist geringer geworden, aber es bleibt die Auswahl von Spalten, die jetzt leer sind. –