0
我有一個包含多個類別的工作表和一個包含數據透視表的工作表。重複讀取過濾的表單時,範圍保持不變
我按類別過濾,創建新工作簿,將數據透視表工作表和過濾類別複製到新工作簿。我重複每個類別的過程。
我的問題是第一類範圍是正確的,但是當我重新查詢其他類別的範圍時,範圍保持不變。
For i = 1 To 10 '10 categories
...
Set Data_sht = NewBook.Worksheets("Temp")
Set Pivot_sht = NewBook.Worksheets("Category")
PivotName = "PivotTable2"
Set StartPoint = Data_sht.Range("A1")
Set DataRange = Data_sht.Range(StartPoint, StartPoint.SpecialCells(xlLastCell))
NewRange = Data_sht.Name & "!" & DataRange.Address(ReferenceStyle:=xlR1C1)
'Change Pivot Table Data Source Range Address
Pivot_sht.PivotTables(PivotName).ChangePivotCache NewBook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=NewRange)
....
Next i
第一遍(類別)的NewRange有545行。我已經證實這是正確的。第二遍(類別)的NewRange仍然包含545行,即使它應該是260行。
有沒有辦法強制重新讀取Data_sht(數據表)?
謝謝。
*我正在按類別過濾* - 我在代碼中看不到這一點。但是,如果你真的在你的範圍內使用'AutoFilter'方法。看看'SpecialCells(xlCellTypeVisible)'我認爲這將幫助你得到你需要的東西。 –
怎麼辦? Set DataRange = Data_sht.Range(「A1」)。CurrentRegion.SpecialCells(xlCellTypeVisible) – sktneer
SpecialCells(xlLastCell)是使用範圍中的最後一個單元格,而不是具有值的最後一個單元格 – Slai