簡體   English   中英

VBA將Excel列復制到不同的工作簿並關閉文件

[英]VBA Copying Excel Columns to different Workbooks and Closing the Files

我有一個基於工作的項目,VBA將自動將選擇的列復制到不同工作簿中的某些工作表上。

Sub Macro2()
MsgBox "It's working 2"


Dim incidentDataColumnC As Range, SpecificDataColumnA As Range

Set incidentDataColumnC = Workbooks("01 - January 2017 Incident Data.csv").Worksheets(1).Columns("C")
Set SpecificDataColumnA = Workbooks.Open("Z:\****\Real Test\01 - January 2017 Service Desk Reports.xlsx").Worksheets(3).Columns("A")

incidentDataColumnC.Copy Destination:=SpecificDataColumnA
SpecificDataColumnA.Parent.Close

Dim incidentDataColumnE As Range, SpecificDataColumnB As Range

Set incidentDataColumnE = Workbooks("01 - January 2017 Incident Data.csv").Worksheets(1).Columns("E")
Set SpecificDataColumnB = Workbooks.Open("Z:\****\Real Test\01 - January 2017 Service Desk Reports.xlsx").Worksheets(3).Columns("B")


incidentDataColumnE.Copy Destination:=SpecificDataColumnB
SpecificDataColumnB.Close

Dim incidentDataColumnH As Range, SpecificDataColumnC As Range

Set incidentDataColumnH = Workbooks("01 - January 2017 Incident Data.csv").Worksheets(1).Columns("H")
Set SpecificDataColumnC = Workbooks.Open("Z:\****\Real Test\01 - January 2017 Service Desk Reports.xlsx").Worksheets(3).Columns("C")

incidentDataColumnH.Copy Destination:=SpecificDataColumnC
SpecificDataColumnC.Close
....
....
MsgBox "It ran"
End Sub

該代碼通過復制列來實現預期的功能,但返回時會出現錯誤,指出目標文件已打開。

我想找到解決此錯誤的方法,並在可能的情況下在復制過程運行后關閉每個文件。

我嘗試了一個簡單的.Close命令,但是彈出一個錯誤消息,提示它不受支持。

您應該使用工作簿對象來跟蹤您的工作簿。 您也可以直接復制范圍,而不是將對象分配給每個單獨的范圍,從而大大簡化代碼。

Sub Macro2()
    Dim wb1 As Workbook
    Dim wb2 As Workbook
    MsgBox "It's working 2"

    Set wb1 = Workbooks("01 - January 2017 Incident Data.csv")
    Set wb2 = Workbooks.Open("Z:\****\Real Test\01 - January 2017 Service Desk Reports.xlsx")

    wb1.Worksheets(1).Columns("C").Copy wb2.Worksheets(3).Columns("A")
    wb1.Worksheets(1).Columns("E").Copy wb2.Worksheets(3).Columns("B")
    wb1.Worksheets(1).Columns("H").Copy wb2.Worksheets(3).Columns("C")
    '....
    '....
    wb2.Close
    MsgBox "It ran"
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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