Excel 为什么我不能按名称访问工作表?
我正在使用Excel 2013。我可以通过遍历工作表并检查Excel 为什么我不能按名称访问工作表?,excel,vba,pivot-table,excel-2013,worksheet,Excel,Vba,Pivot Table,Excel 2013,Worksheet,我正在使用Excel 2013。我可以通过遍历工作表并检查Name属性来访问工作表,但使用工作表名称作为键无法单独找到它 我真的必须遍历所有工作表,然后遍历所有透视表才能找到需要刷新的透视表吗 这项工作: 将工作表调整为工作表 Dim oPivot作为数据透视表 对于ActiveWorkbook.工作表中的每个工作表 如果oWorksheet.Name=“fpspoint”,则 对于oWorksheet.PivotTables中的每个oPivot oPivot.PivotCache.Refres
Name
属性来访问工作表,但使用工作表名称作为键无法单独找到它
我真的必须遍历所有工作表,然后遍历所有透视表才能找到需要刷新的透视表吗
这项工作:
将工作表调整为工作表
Dim oPivot作为数据透视表
对于ActiveWorkbook.工作表中的每个工作表
如果oWorksheet.Name=“fpspoint”,则
对于oWorksheet.PivotTables中的每个oPivot
oPivot.PivotCache.Refresh
下一个观点
如果结束
下一个工作表
这不起作用:
将工作表调整为工作表
oWorksheet=ActiveWorkbook.Worksheets(“fpspoint”)
我得到了老栗子:
未设置对象变量或带块变量
为什么?
理想情况下,我只想要一行:
ActiveWorkbook.Worksheets(“fpspoint”).PivotTables(“fpspoint”).PivotCache.Refresh
这肯定是可能的?错误
未设置对象变量或带块变量
发生的原因是,如果使用对象,则需要使用Set
Dim oWorksheet As Worksheet
Set oWorksheet = ActiveWorkbook.Worksheets("FPSpivot")
另外:您确定是指
ActiveWorkbook
(有焦点/位于顶部的工作簿)还是指thishworkbook
(编写代码的工作簿)?在大多数情况下,您需要此工作簿
您确定是指活动工作簿
(有焦点/位于顶部的工作簿)还是指此工作簿
(编写代码的工作簿)?会产生巨大的差异,在大多数情况下,您需要此工作簿
还请注意,对于将工作表放入变量的对象,您需要使用Set
。工作表(“fpspoint”)使用ActiveWorkbook
、activesheet
和。选择,因为它会导致@P之类的错误ᴇʜ指出。我仍然不清楚为什么ActiveWorkbook.Worksheets(“fpspoint”).PivotTables(“fpspoint”).PivotCache.Refresh
不起作用。它抱怨“无法获取工作表类的数据透视表属性”。@MarkRoworth这意味着您的数据透视表未命名为“fpspoint”。啊,谢谢。首先,是的,我指的是这本手册。其次,我经常使用.Net,我忘了在VBA中需要一个集合。奇怪的是,有时你看不见树木,看不见树木。谢谢你的帮助。完全正确