【发布时间】:2015-08-06 01:58:54
【问题描述】:
下面的 vba 打开一个 Excel 工作簿,检查它是否处于只读模式,如果是,则等待读/写处于活动状态,然后运行代码。简单
我的问题是我有很多 excel 文件,例如 C:\TEST\TEST.xlsb, C:\TEST\TEST2.xlsb ,C:\TEST\TEST3.xlsb ,C:\TEST\TEST4.xlsb等等
如何让 VBA 通过每个工作簿名称运行代码
为每个工作簿名称节省我多次复制/粘贴代码的时间。
Function test()
Dim xl As Object
Set xl = CreateObject("Excel.Application")
xl.Workbooks.Open ("C:\TEST\Test.xlsb")
Do Until xl.ActiveWorkbook.ReadOnly = False
MsgBox ("Workbook in use, waiting till read/write is active")
Call Pause(5)
xl.Quit
xl.Workbooks.Open ("C:\TEST\Test.xlsb")
If xl.ActiveWorkbook.ReadOnly = False Then Exit Do
Loop
If xl.ActiveWorkbook.ReadOnly = False Then
MsgBox ("read/write active")
'Run code
xl.Sheets("Sheet1").Range("G2").Value = 2222
xl.ActiveWorkbook.Save
xl.Quit
End If
xl.Quit
Set xl = Nothing
End Function
【问题讨论】: