ある本から別の本にすべてのシートをコピーしようとしています
Windows("test.xls").Sheets.Copy Before:=Workbooks(ThisWorkbook).Sheets("00")
エラー - タイプが一致しません!
「test.xls」はActiveWorkBookと同じフォルダにあります。
特に - 「test.xls」を開かずにこれを行う方法はありますか?
閉じたワークブックを開き (バックグラウンドで開くと、閉じたブックで作業するよりもはるかに簡単です)、すべてのシートをTest.xls
他のブックの特定の部分 (つまり、シートの前00
) に 1 行でコピーできます。
以下のコード:
c:\temp\Test.xls")
00
コードを含むワークブックのシートの前にすべてのシートをコピーしますTest.xls
コードは、アラート、Test.xls のコード イベント、および画面の更新を抑制しました。
Sub CopyAll()
Dim Wb1 As Workbook
Dim Wb2 As Workbook
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Set Wb1 = Workbooks.Open("c:\temp\Test.xls")
Set Wb2 = ThisWorkbook
Wb1.Sheets.Copy Before:=Wb2.Sheets("00")
Wb1.Close False
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
End Sub
単純に考えているのかもしれませんが、すべてのシートをコピーしたい場合は、基本的にスプレッドシートファイル全体をコピーしています。プログラムで「古い」ワークブックを新しい名前で保存する方が簡単ではないでしょうか? 同じ内容でまったく新しいファイルを作成します。
多分私は何かが欠けているかもしれませんが、それを見るのは別の角度です.