Ms access vba访问-检查excel文件是否打开
使用VBA访问,我试图编辑以下代码。所以它首先检查excel文件是否打开,如果已经打开,则等待文件关闭,然后恢复代码?这需要为每个文件1、2、3执行Ms access vba访问-检查excel文件是否打开,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,使用VBA访问,我试图编辑以下代码。所以它首先检查excel文件是否打开,如果已经打开,则等待文件关闭,然后恢复代码?这需要为每个文件1、2、3执行 检查excel文件是否打开 如果打开等待(暂停)直到关闭,则恢复代码(刷新表、保存、关闭) 对下一个文件重复此过程 Function RefreshExcelTables() Dim ExcelApp As Object Set ExcelApp = CreateObject("Excel.Application") Exce
Function RefreshExcelTables()
Dim ExcelApp As Object
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.workbooks.Open "c:\test\Test_Sheet1.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close
ExcelApp.workbooks.Open "c:\test\Test_Sheet2.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close
ExcelApp.workbooks.Open "c:\test\Test_Sheet3.xlsb"
ExcelApp.ActiveWorkbook.refreshall
ExcelApp.ActiveWorkbook.Save
ExcelApp.ActiveWindow.Close
Set ExcelApp = Nothing
End Function
Sub Test()
Dim ExcelApp As Object
Dim X, X1
X = Array("c:\test\Test_Sheet1.xlsb", "c:\test\Test_Sheet2.xlsb")
For Each X1 In X
On Error Resume Next
Set ExcelApp = GetObject(X1).Application
On Error GoTo 0
If Not ExcelApp Is Nothing Then
With ExcelApp.Workbooks(Right$(X1, Len(X1) - InStrRev(X1, "\")))
.RefreshAll
.Save
.Close
End With
Set ExcelApp = Nothing
End If
Next X1
End Sub
我尝试了你的代码,但不断得到运行时错误9,在线超出范围---使用ExcelApp.Workbook(右$(X1,Len(X1)-instrev(X1,“\”))