Excel/Access VBA - 由于查询刷新而无法获取上次使用的行
Excel/Access VBA - Cant get last used row because of query refresh
我正在刷新 Access 上的查询并在 table 上循环,但是循环超出了刷新 - 所以我没有得到正确的最后一行。
刷新后,a 应等于 2746,但它返回 1478,这是刷新前的最后一行。
vPath = ThisWorkbook.Sheets(vHome).Range("LogTblFolder")
vFile = ThisWorkbook.Sheets(vHome).Range("LogTblFile")
Set wb = Workbooks.Open(vPath & vFile)
Sheets("Main").Select
ActiveWorkbook.Connections("CTA_DB_Full3").Refresh
ActiveWorkbook.Connections("CTA_DB_Full3").Refresh
Call WaitForRefresh(1)
a = 1:Do Until Sheets("Main").Cells(a, 1).Value2 = "":a = a + 1:Loop
vArray = Sheets("Main").Range(Cells(2, 1), Cells(a, 94))
wb.Close False
Public Function WaitForRefresh(intSeconds As Integer)
Dim dblStart As Double
If intSeconds > 0 Then
dblStart = Timer()
Do While Timer < dblStart + intSeconds
Loop
End If
End Function`
非常感谢帮助!!!
这可能是一个开始
Sub x()
Dim l As ListObject
Set l = ActiveSheet.ListObjects(1)
l.QueryTable.BackgroundQuery = False
Debug.Print l.ListRows.Count
l.Refresh
Debug.Print l.ListRows.Count
varray = l.DataBodyRange.Value
End Sub
我正在刷新 Access 上的查询并在 table 上循环,但是循环超出了刷新 - 所以我没有得到正确的最后一行。
刷新后,a 应等于 2746,但它返回 1478,这是刷新前的最后一行。
vPath = ThisWorkbook.Sheets(vHome).Range("LogTblFolder")
vFile = ThisWorkbook.Sheets(vHome).Range("LogTblFile")
Set wb = Workbooks.Open(vPath & vFile)
Sheets("Main").Select
ActiveWorkbook.Connections("CTA_DB_Full3").Refresh
ActiveWorkbook.Connections("CTA_DB_Full3").Refresh
Call WaitForRefresh(1)
a = 1:Do Until Sheets("Main").Cells(a, 1).Value2 = "":a = a + 1:Loop
vArray = Sheets("Main").Range(Cells(2, 1), Cells(a, 94))
wb.Close False
Public Function WaitForRefresh(intSeconds As Integer)
Dim dblStart As Double
If intSeconds > 0 Then
dblStart = Timer()
Do While Timer < dblStart + intSeconds
Loop
End If
End Function`
非常感谢帮助!!!
这可能是一个开始
Sub x()
Dim l As ListObject
Set l = ActiveSheet.ListObjects(1)
l.QueryTable.BackgroundQuery = False
Debug.Print l.ListRows.Count
l.Refresh
Debug.Print l.ListRows.Count
varray = l.DataBodyRange.Value
End Sub