簡體   English   中英

是否有使用 vba 復制另一個工作簿的防彈方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM