在另一个工作簿中引用单元格。 如果值相同,则使我的查询不刷新
它说我有太less的参数预计15 …这是我刷新前后的东西。
1级
Public WithEvents qt As QueryTable Private Sub qt_AfterRefresh(ByVal Success As Boolean) Application.Worksheets("RawDataLines").Range("A1") = Application.Worksheets("RawDataLines").Range("C1") Application.Run "'Operation Get Ipads.xls'!Assembly1_Button" End Sub
2级
Public WithEvents qut As QueryTable Private Sub qut_BeforeRefresh(Cancel As Boolean) Worksheets("RawDataLines").Range("C1") = _ "='H:\Departments\Manufacturing\Production Links\DashBoard Breakdown\[MASTER_LIVE_STATUS_DATA.xls]Sheet1'!R1C1" If Application.Worksheets("RawDataLines").Range("C1") = Application.Worksheets("RawDataLines").Range("A1") Then Cancel = True End If End Sub
初始化:
Dim T As New Class1 Dim H As New Class2 Sub Initialize_It() Set T.qt = ThisWorkbook.Sheets(3).QueryTables(1) Set H.qut = ThisWorkbook.Sheets(3).QueryTables(1) End Sub
Private Sub qt_BeforeRefresh(ByVal Success As Boolean)
参数通常是Cancel
,这是你的代码引用。 将其更改为Cancel
。
您可以参考当前工作簿(此代码正在运行的位置)为ThisWorkbook
。 假设它是主人,那么你可以使用:
ThisWorkbook.Worksheets("sheet1").Range("A1")
Workbooks
集合仅涉及打开的工作簿,因此您需要暂时打开其他工作簿:
Dim wbOther As Workbook Set wbOther = Workbooks.Open("full path and filename.xlsx", False)
False
观点表明你不希望在打开图书时Update Links
(如果适用)。
当你完成了另一本书,使用:
wb.Close False 'False says that you do not need to Save Changes Set wb = Nothing
可以从另一个工作簿中获取单个值,而不打开和closures它,但如果该书也有链接,则可能会导致问题:
Debug.Print ExecuteExcel4Macro("'F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!R6C4")
请注意,公式需要使用R1C1表示法。 (而不是Debug.Print
你可以将值存储在一个variables中。)还要注意,我不一定会推荐这种方法,因为它没有文档,但是我想我会在问题的上下文中提到它。