テーブルの範囲をコピーして、新しいブックに貼り付けたいとします。私は、他の列と行で構成された範囲を変数としてコピーしたいと思います。たとえば、列CとEを1から17,20、32から39、45の行でコピーします。その最大10回(列の場合)を実行して、コピーする列の選択が完了したら、私は出る。より明確にするために、例があります。私は列B、D、Fを選択し、コピーする行を選択します(すべての列で同じです)。最後にコピーして新しいワークブックに貼り付けます。だから私は3回後に停止し、私が選んだものをコピーして出て行く。VBA列と行の変数で範囲を使用
マイコード
Sub Macro3()
Dim ColNum As Long
Dim col As String
Dim CopyRange As Range, row As String
For i = 1 To 10
col = InputBox("Column number " & i & ", if finish write 'done'")
Do While row <> "done"
row = InputBox("row number to copy (max to 62), if finish write 'done'")
Loop
If col = "done" Then
MsgBox ("copy finished")
GoTo ExitIteration
Else
Set CopyRange = Union(CopyRange, Range(col & row, [col & row]))
End If
Next
ExitIteration:
CopyRange.Copy
Workbooks.Add
ActiveSheet.Paste
Windows("Pedro.xlsm").Activate
End Sub
すべてのヘルプ、それを解決してください?
「完了」以外の何かを入力するたびに、そのたびに 'InputBox'にループバックするので、' Do While row <> done done "は表示されません。 –
それでは、私のコードを動かすための解決策は何ですか? – Zigouma
これはあなたの前の質問のちょっとした反省ではありませんか? http://stackoverflow.com/questions/40806057/vba-copy-selected-columns-and-rows-from-an-excel-table-and-convert-paste-it-in-a?noredirect=1#comment68833714_40806057を参照してください。 –