Excel 2007/2010 GUI隐藏表查询刷新中的VBA

时间:2010-11-24 09:30:26

标签: vba excel-vba excel

Hi First Post,希望有人可以帮助,因为它会导致脱发。

我使用excel和access设计GUI。 2003年我从来没有遇到任何问题,但自从更新到2007/2010以来,我遇到了一个简单的问题。

2003年,我可以使用

在非常隐藏的工作表上刷新查询
Sheet2.Range("a1").QueryTable.Refresh BackgroundQuery:=False

在2007/2010年,我无法做到这一点。如果我将2003年的表格中的查询剪切并粘贴到2007/2010中,那么它是完整的,但如果它是我在2007/2010年构建的查询则不行。

录音机吐出

Range("Table_Query_from_MS_Access_Database_1[[#Headers],[Trans_ID]]").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

必须首先选择要运行的页面

所以逻辑上我试过

Sheet2.Range("a1").Select
Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

再次选择查询的位置不会在Sheet2.Range(“a1”)失败。选择部分

然后我在逻辑上尝试了

Sheet2.Range("a1").Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

再次这不起作用

Sheet2.Range("Table_Query_from_MS_Access_Database_1[[#Headers],Trans_ID]]") _
      .Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False

这也不起作用

我想做的就是在非常隐藏的表格上刷新查询

使用screen.update = false然后取消隐藏宏隐藏屏幕update = true并不是非常理想,因为我想阻止最终用户访问此查询,因为它是excel系统中的一部分我只是无法解决这个问题刷新隐藏工作表上的查询,这是2003年的一项简单任务。

请帮我脱发

谢谢

理查德

1 个答案:

答案 0 :(得分:2)

选择不适用于非常隐藏的工作表。 尝试没有选择 -
Sheet2.Range(“a1”)。ListObject.QueryTable.Refresh BackgroundQuery:= False