【发布时间】:2018-03-12 20:39:38
【问题描述】:
我有以下代码(感谢本网站上的回答),它在 Excel 中选择一个工作表,并从中挑选出数据透视表的名称。
Sub PivotTableName()
Sheets("PivotTable").Select
Dim pt As PivotTable
Set pt = ActivePivotTable
If pt Is Nothing Then
Debug.Print "No Active pivot table"
Else
Debug.Print "Active = " & pt.Name
End If
End Sub
Function ActivePivotTable() As PivotTable
Dim pt As PivotTable, rv
For Each pt In ActiveSheet.PivotTables
Debug.Print pt.Name, pt.TableRange2.Address
If Not pt.Name = "" Then
Set ActivePivotTable = pt
Exit Function
End If
Next pt
End Function
数据透视表是从 MySQL 数据库导入的,并且是工作表上唯一的数据透视表。如果打开excel电子表格并导入表格(Using MySQL for Excel add-in)然后运行宏,宏运行完美,给出答案
Active = project1.mytable
但是,如果删除此数据透视表,然后再次导入,Excel 会将新导入的数据透视表名称更改为“project1.mytable.2”,但是,当我运行宏时,它仍然返回
Active = project1.mytable
当我在数据透视表中选择了一个单元格时,我使用 ctrl+a 删除数据透视表,然后删除。
有谁知道为什么它没有选择正确的名称?
【问题讨论】:
-
如果它是工作表上唯一的一个,为什么不直接使用
Sheets("PivotTable").PivotTables(1).Name? -
@Jay 不确定您的代码的目的是什么。您需要对 Pivot-Table 的
Name做什么?您的工作表是否始终包含一个PivotTable?
标签: mysql vba excel pivot-table