テーブルの範囲をコピーして新しいブックに貼り付けたいとします。私は、他の列と行で構成された範囲を変数としてコピーしたいと思います。たとえば、列CとEを1から17,20、32から39、45の行でコピーします。その最大10回(列の場合)を実行して、コピーする列の選択が完了したら、私は出る。より明確にするために、例として、列B、D、Fを選択し、コピーする行を選択して(すべての列で同じです)、最後にコピーして新しいワークブックに貼り付けます。だから私は3回後に止まり、私が選んだものをコピーして外に出す。VBA - ランタイムエラー1004 'アプリケーション定義またはオブジェクト定義'
マイコード:
Sub Macro33()
Dim col As String, row As String
'Dim row As Integer
Dim CopyRange As Range
Set CopyRange = [A:A]
For i = 1 To 10
col = InputBox("Column number " & i & ", if finish write 'done'")
If col = "done" Then
MsgBox ("copy finished")
GoTo ExitIteration
Else
row = InputBox("row number to copy (max to 62), if finish write 'done'")
Do While row <> "done"
Set CopyRange = Union(CopyRange, Range(col & row & ":" & col & row))
row = InputBox("row number to copy (max to 62), if finish write 'done'")
Loop
End If
Next
ExitIteration:
CopyRange.copy
Workbooks.Add
ActiveSheet.Paste
Windows("Pedro.xlsm").Activate
End Sub
問題はラインである:
Set CopyRange = Union(CopyRange, Range(col & row & ":" & col & row))
私は常に、アプリケーション定義またはオブジェクト定義のエラー(エラー1004)を取得し、見つけることができませんそれのための任意の解決策! 助けてください?
:
のようなものを試してみてください?私はあなたがこれらのlong/integer値を割り当てているように見え、それは無効な範囲アドレス文字列( 'col&row&": "&col&row')になるでしょう。 –
正しいエラーラインですか?私は 'CopyRange.Copy'で複数の選択肢に使うことができないので、1004を取得します。また、 'row'と' col'は常に同じですので、 '' B2:B2 ''のような範囲になります。 – Comintern