Ali*_*Ali 3 excel vba excel-2003 excel-vba
我在一个工作表(internal.xls)中定义了一个宏
Public Sub sheet2test()
Workbooks.Open Filename:="external.xls"
Windows("external.xls").Activate
Sheets("Sheet3").Activate
Range("A5").Value = 5
End Sub
Run Code Online (Sandbox Code Playgroud)
运行此代码,打开external.xls,并激活其工作表3.但是,Value of 5放在internal.xls而不是external.xls中.如何确保对其他工作表进行更改?
你不需要做所有这些激活.它所做的只是导致屏幕闪烁和处理延迟.
Public Sub sheet2test()
Workbooks.Open Filename:="external.xls"
Workbooks("external.xls").Sheets("Sheet3").Range("A5").Value = 5
End Sub
Run Code Online (Sandbox Code Playgroud)
我宁愿使用:
dim wb as workbook, sh as worksheet
set wb = workbooks.open("thatWorkbook.xls")
'Now you have a proper reference to the newly opened workbook !
set sh = wb.sheets("sheet3")
sh.range("a1") = "hello world"
Run Code Online (Sandbox Code Playgroud)
如其他人所述,各种Activate指令在这里比使用更不方便.