Как express последняя строка данных в sourcedata перед созданием сводной таблицы? - PullRequest
0 голосов
/ 11 марта 2020

Как мне express стать моим последним, когда дело доходит до создания сводной таблицы? Когда я попытался express указать мои исходные данные как SourceData: = _ "'Result'! R1C2: R & lrC10", он просто не смог найти последнюю строку строки. Есть ли другой способ сделать express последнюю строку в sourcedata перед созданием сводной таблицы, кроме выражения ее в форме R и C? Я также попытался выразить lastrow как lr = ws1.Range ("B" & ws1.Rows.Count) .End (xlUp) .Row, но он не работает (без сгенерированной сводной таблицы)

Dim siteCount As Integer
Dim site_i As Worksheet, lr As Long
Dim ws1 As Worksheet
Set ws1 = ActiveWorkbook.Worksheets("Result")

lr = ws1.Range("B" & ws1.Rows.Count).End(xlUp).Row


siteCount = 13

Dim z As Integer
For z = 1 To siteCount

Set site_i = Sheets.Add(after:=Sheets(Worksheets.Count))
site_i.Name = "wafermapvbd" & CStr(z) 
Next z
#from sitecount=13 to next z is just for creating the 13 wafermaps here

#to create one of the 13 wafermaps
Range(Selection, Selection.End(xlDown)).Select

Dim pc As PivotCache, pt As PivotTable

Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ws1.Range("B2:D" & lr), Version:=xlPivotTableVersion14)  '<-----------how to express source data using lastrow here?

# Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"'Result'!R1C2:R&lrC10", Version:=xlPivotTableVersion14) '<------doesn't work when express lr with R and C originally

Set pt = pc.CreatePivotTable(TableDestination:="'wafermapvbd1'!R3C1", _
TableName:="PivotTable100", DefaultVersion:=xlPivotTableVersion14)

данные для создания сводной таблицы

enter image description here

мой текущий полный код для создания одной из моих 13 сводных таблиц, если вам нужна дополнительная информация

Dim siteCount As Integer
Dim site_i As Worksheet, lr As Long
Dim ws1 As Worksheet
Set ws1 = ActiveWorkbook.Worksheets("Result")

lr = sht.ListObjects("Table1").Range.Rows.Count
lr = ws1.Range("B" & ws1.Rows.Count).End(xlUp).Row


siteCount = 13

Dim z As Integer
For z = 1 To siteCount

Set site_i = Sheets.Add(after:=Sheets(Worksheets.Count))
site_i.Name = "wafermapvbd" & CStr(z) 
Next z



Range(Selection, Selection.End(xlDown)).Select

Dim pc As PivotCache, pt As PivotTable

Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
ws1.Range("B2:D" & lr), Version:=xlPivotTableVersion14)  '<-----------how to express source data using lastrow here?



Set pt = pc.CreatePivotTable(TableDestination:="'wafermapvbd1'!R3C1", _
TableName:="PivotTable100", DefaultVersion:=xlPivotTableVersion14)


Sheets("wafermapvbd1").Select
Cells(3, 1).Select

With ActiveSheet.PivotTables("PivotTable100").PivotFields("X_position")
.Orientation = xlColumnField
.Position = 1
End With


With ActiveSheet.PivotTables("PivotTable100").PivotFields("Y_position")
.Orientation = xlRowField
.Position = 1
End With

ActiveSheet.PivotTables("PivotTable100").AddDataField ActiveSheet.PivotTables( _
"PivotTable100").PivotFields("Vbd"), "Average of Vbd", xlAverage

    ActiveSheet.PivotTables("PivotTable100").PivotFields("Y_position").AutoSort _
        xlDescending, "Y_position"
...