我要复制一个范围表并将其粘贴在一个新的工作簿的变量。我想复制由其他列和行组成的范围,但是作为变量。例如,我复制列C和E,行数从1到17,20,从32到39和45.我想最多进行10次(对于列),如果我完成选择要复制的列,我退出。更清楚的是,有一个例子:我选择列B,D,F,然后选择要复制的行(对于所有列它们是相同的),最后将它们复制并粘贴到新的工作簿中。所以我在三次之后停下来,复制我选择并出去的东西。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'每次每一次。 –
那么让我的代码工作的解决方案是什么? – 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 –