3
有人能告訴我如何找到工作簿(或工作表)中的所有數據透視表?在某些情況下,數據透視表可能隱藏在一個非常大的Excel表格中,或很難找到。如果我至少可以得到數據透視表所在的單元格地址或範圍,那就太棒了。查找excel 2007樞軸表
謝謝。
有人能告訴我如何找到工作簿(或工作表)中的所有數據透視表?在某些情況下,數據透視表可能隱藏在一個非常大的Excel表格中,或很難找到。如果我至少可以得到數據透視表所在的單元格地址或範圍,那就太棒了。查找excel 2007樞軸表
謝謝。
這應該爲你工作。它將結果打印到立即窗口:
Sub FindPivotTables()
Dim wst As Worksheet
Dim pvt As PivotTable
' loop through all sheets and print name & address of all pivot tables
For Each wst In ActiveWorkbook.Worksheets
For Each pvt In wst.PivotTables
Debug.Print wst.Name, pvt.TableRange2.Address, pvt.Name
Next pvt
Next wst
End Sub
每個工作表都會顯示一個PivotTables
集合;可以遍歷每個工作表查找具有通過PivotTables
一個.PivotTables.Count > 0
,然後循環對sheeet找到你正在尋找一個表:
Sub Test()
Dim pTable As pivotTable
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Dim pivotTableCount
pivotTableCount = ws.PivotTables.Count
If pivotTableCount > 0 Then
For Each pTable In ws.PivotTables
Dim pivotTableName As String
pivotTableName = pTable.Name
Dim pivotTableTopLeftCell As String
pivotTableTopLeftCell = pTable.Location
Next pTable
End If
Next ws
End Sub
此代碼只是不起作用,它不返回任何信息。而且,這些聲明不應該在循環中反覆進行。 – 2011-12-15 05:08:09
錯過了複製和粘貼錯誤(謝謝!);否則它工作正常 - 事實上,除了pivotTableCount檢查,我們的代碼在循環方面是相同的。我想向OP展示兩件事情;工作表循環和數據透視表集合,以及顯示一些典型屬性。我希望有人願意通過代碼f8來看看每個位的工作原理。關於在循環中聲明變量的觀點雖然很有趣 - 它確實依賴於它。我更喜歡將變量聲明爲靠近我使用它們的地方,以便可讀性和範圍,特別是在較大的模塊中。 – dash 2011-12-15 09:11:33