0
シートをループするコードをシート名に依存したい別の範囲をコピーしたい(シートがリストされない場合はスキップしたい)私はコピーしたい列の数/アドレスを知っていると言うことができます(行の数は、私が得た元のファイルに依存します)、私は別の下にcheck_dataというシートに別の下にこれらの範囲をすべてコピーしたいと思います私はこのコードの一部が動作することがありますが、それはシートを通ってループしていないようです。シートをループして特定の範囲をコピーする方法
これまで私はこれを得ました。 vba)
Sub Copy_data()
Dim wb As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Set wb = ActiveWorkbook
Set ws1 = wb.Sheets("A")
Set ws2 = wb.Sheets("B")
Set ws3 = wb.Sheets("Check_data")
For Each ws In Worksheets
If ws.Name = "A" Then
ws1.Activate
ws1.Range("A1:Q1").Select
ws1.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ws3.Select
If ws3.Range("A1") = "" Then
ws3.Range("A1").Select
ActiveSheet.Paste
Else
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
End If
ElseIf ws.Name = "B" Then
ws2.Activate
ws2.Range("A1:Q1").Select
ws2.Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ws3.Select
If ws3.Range("A1") = "" Then
ws3.Range("A1").Select
ActiveSheet.Paste
Else
Selection.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
End If
Else
End If
Next ws
End Sub
ご意見ありがとうございました
再びこんにちは、すべてのあなたとなります。アドバイス私は自分のコードを修正することができましたので、今は動作しますが、解決すべきもう一つの問題があります。たとえば、A1:Q1だけでなくT1:X5など、シートBから2つの異なる範囲をコピーしたいとします。したがって、最終的なコードは、シートAから特定の範囲をcheck_dataというシートにコピーし、次にシートBからは範囲A1:Q1をコピーする必要がありますが、同じシートから別の範囲をコピーしたいので、このcheck_dataシートにT1:X5と言うことができます(まだコピーされている範囲の下にあります) –
あなたはUnionを使って範囲を結合することができます。 – QHarr
Union [here]に関する短い文書(http://www.informit.com/articles/article.aspx?p=2021718&seqNum=11)。 2つの連続した 'Select'と' Selection.Paste'操作を行うこともできますが、Unionはよりクリーンであると思います。 –