我想複製一系列表並將其粘貼到一個新的工作簿中。我想複製由其他列和行組成的範圍,但是作爲變量。例如,我複製列C和E,行數從1到17,20,從32到39和45.我想最多進行10次(對於列),如果我完成選擇要複製的列,我退出。爲了更加清楚,有一個例子:我選擇列B,D,F並選擇要複製的行(對於所有列它們是相同的),最後複製它們並將它們粘貼到新的工作簿中。所以我在三次後停下來,複製我選擇和出去的東西。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),並不能找到任何解決方案! 請幫忙嗎?
什麼是當錯誤引發col'的'值和'row'?我認爲它看起來像是分配這些長/整數值,並且這將導致無效的範圍地址字符串('col&row&「:」&col&row') –
您確定這是正確的錯誤行嗎?我在'CopyRange.Copy'上得到了1004,因爲它不能用於多個選擇。另外,'row'和'col'總是相同的,所以你最終會得到像'「B2:B2」'這樣的範圍。 – Comintern