75 個のタブを持つ Excel スプレッドシートがあります。各タブは、2 列の単語で同じようにフォーマットされています。このすべてのデータを 1 つのページにまとめたいのですが、各タブからプログラムでテーブルを抽出し、それを 1 つのタブに貼り付ける方法がわかりません。
これをExcelで行う方法はありますか?
さて、これが私が試したコードです:
Sub Macro5()
Range("A1:B30").Select
Selection.Copy
Sheets("Table 1").Select
Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
End Sub
すべてのタブは、A1:B30 からのすべてのセルのデータを使用して、同じ方法で書式設定されます。Selection.End コマンドは、次に利用可能な開いているセルに移動し、その中に後続のタブからデータを貼り付けると考えています。
現在のところ、各タブに移動してこのマクロを個別に実行する必要がありますが、貼り付けられたデータが既存のデータと同じタイプ/形式ではないため、機能しません。
何か案は?
コーディング試行 #2 - 成功!!!
Sub Macro5()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.activate
Range("A1:B30").Select
Selection.Copy
Sheets("Table 1").Select
Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
On Error Resume Next 'Will continue if an error results
Next ws
End Sub
ええと、あなたが答えをスプーンで教えてくれなくてよかったと認めたくありません。よろしくお願いします。
コーディング試行 #3 - 選択を避ける
Sub Macro5()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Set Rng = ws.Range("A1:B30")
Rng.Copy
Dim ws1 As Worksheet
Set ws1 = Worksheets("Table 1")
ws1.Select
Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
On Error Resume Next 'Will continue if an error results
Next ws
End Sub
正しくありません。それでも機能しますが、最初のワークブックに到達したときに「選択」を使用しないようにする方法がわかりません。コンテンツなしで最も近いセルを参照する方法はありますか? 「End」キーでこれができることは知っていますが、非選択ベースの方法はありますか?