[英]Is there bulletproof way to copy another workbook using vba?
這困擾了我多年,我想使用 VBA 打開另一個工作簿並將工作表復制到當前工作簿並關閉它。 另一個工作簿也可以是啟用宏的工作簿。 我的方法如下:
Application.DisplayAlerts = False
Dim workBookName1 As String
Application.AutomationSecurity = msoAutomationSecurityForceDisable
Application.AutomationSecurity = msoAutomationSecurityLow
Workbooks.Open fileName:="C:\test.xlsm", ReadOnly:=True
workBookName1 = ActiveWorkbook.Name
'some work with copying, filtering, etc.
With Workbooks(workBookName1)
.Close
End With
但問題是這不是防彈的-> 有時此過程會關閉所有打開的工作簿。
有沒有其他方法可以解決這個問題,也許另一種方法可以嘗試?
如果您正確聲明和使用對象,您將不會遇到此問題,因為您將只使用這些對象。 這是一個例子
Option Explicit
Dim wbThis As Workbook, wbThat As Workbook
Set wbThis = ThisWorkbook
Set wbThat = Workbooks.Open(Filename:="C:\test.xlsm", ReadOnly:=True)
'
' Do some copying. For example see how I am using the objects below
' wbThat.Sheets("Sheet1").Copy After:=wbThis.Sheets(wbThis.Sheets.Count)
'
'~~> Close specific workbook when you are done
wbThat.Close (False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.