複数のシートを含むExcel 2007文書がありますが、source.xls
としましょう。私はいくつかのシートをフォルダ内のすべてのExcelドキュメント、例えばC:\some_folder
にコピーしたいと思います。テーブル参照のExcelシートをコピーする
私はどのようにディレクトリをループに考え出し:
Dim file As String
file = dir("C:\some_folder\*.xlsx")
Do While file <> ""
Rem do_stuff
file = dir()
Loop
そして、どのようにブックの間のシートをコピーする方法:これまでのところは良い
For Each ws in ActiveWorkbook.Worksheets
Dim wb as Workbook
Set wb = Workbook.Open(file)
ws.Copy , wb.sheets(w.sheets.Count)
wb.Close SaveChanges:=True
Next ws
を。
ここでは、シートの1つにSQL Serverの外部データを含むテーブルが含まれています。それをコピーするとうまくいきます。
他のシートは、その表のデータをTable_MYSERVER_MYDB[[row][col]]
と参照しています。私は、例えば、シート及びセルによってテーブル内のデータを参照しようと :私はそれをコピーすると、参照がsource.xls!Table_MYSERVER_MYDB[[row][col]]
UPDATEに自動的になってい=Other_Sheet!A1
。それでもなお同じ問題は、リファレンスは魔法のように=[source.xls]Other_Sheet!A1
になります。
UPDATE 2: 次のtryは=INDIRECT("Other_Sheet!"&CELL("address"))
と他のシートのセルにアクセスすることでしたが、それはすべてのセルが同じ値が表示されますエクセル2007でバグを引き起こすようです。あなた自身のためにそれを試してください:)
私は同じブック内のテーブルを参照する対象ドキュメントのシートが必要です。どうすればいい?
私はこれを試してみてください、あまりにも
これはうまくいくかもしれませんが、私はこれがうまくスケールされないことに恐れています。私は数枚のシートを10枚のシートに数千枚コピーしなければならない... – chris
@chrisレンジは何でもかまいません... "A1:Z99" –
ああ、それは物事をスピードアップするかもしれません! – chris