0

VBA/Access のワークブックから別のワークブック/ファイルにシートをコピーするためのこのコードがあります。

Dim File1 as String
Dim File2 as String
File1 = "D:\File1.xls"
File2 = "D:\File2.xls"

Windows(File1).Activate
Sheets("Name of Sheet").Select
Sheets("Name of Sheet").Copy Before:=Workbooks(File2).Sheets("Name of Target Sheet")

これは機能していません。バックグラウンドでコピーする必要があります。また、マクロを無効にする必要があります。

  1. どうすればそれを機能させることができますか?
  2. 「シート名」の代わりにインデックスを付けることはできますか?
  3. 2 番目の Workbook にコピーするインデックスの配列を指定できますか?
4

2 に答える 2

2

MS Access で実行している場合は、次の行に何かが必要です。

Dim CopyFrom As Object
Dim CopyTo As Object ''Early binding: Workbook
Dim CopyThis As Object
Dim xl As Object ''Early binding: New Excel.Application

''Late binding
Set xl = CreateObject("Excel.Application")
xl.Visible = True

''To use a password: Workbooks.Open Filename:="Filename", Password:="Password"
Set CopyFrom = xl.Workbooks.Open("z:\docs\From.xls")
Set CopyThis = CopyFrom.Sheets(1) ''Sheet number 1
Set CopyTo = xl.Workbooks.Open("z:\docs\To.xls")
CopyThis.Copy After:=CopyTo.Sheets(CopyTo.Sheets.Count)

CopyFrom.Close False
于 2012-07-20T11:53:24.843 に答える
0

最初にワークブックを開く必要があります。

Dim File1 As String
Dim File2 As String
File1 = "C:\Path\to\file\Book13.xlsx"
File2 = "C:\Path\to\file\Book2.xlsx"

Workbooks.Open Filename:=File2
Workbooks.Open Filename:=File1
ActiveWorkbook.Worksheets("Sheet2").Select
Sheets("Sheet1").Copy Before:=Workbooks("Book2").Sheets(1)

Sheets オブジェクトでは、シート名またはインデックスを使用できます。複数のワークシートを別のワークブックにコピーするには、配列をループに渡すことができます。

于 2012-07-20T11:58:49.440 に答える