私はこのワークベースのプロジェクトを使用して、VBAが自動的に選択列を別のワークブック内の特定のワークシートにコピーします。VBA別のブックにExcelの列をコピーしてファイルを閉じます
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コマンドを試しましたが、サポートされていないというエラーが表示されます。
簡単な答えは、3回ではなく1回ブックを開きます。 – YowE3K
いくつかのオブジェクト変数を宣言し、私たちに連絡してください:https://msdn.microsoft.com/en-us/library/office/gg251791.aspx – Absinthe
'SpecificDataColumnC'は' Range'です。あなたは 'SpecificDataColumnC .Close'、 'SpecificDataColumnB'と同じです。また、上記を参照してください。 –