VBA对列和行使用带变量的范围

时间:2016-11-30 08:54:59

标签: excel vba excel-vba

我想复制一系列表格并将其粘贴到新工作簿中。我想复制由其他列和行组成的范围,但作为变量。例如,我将列C和E复制为1到17,20,从32到39和45的行。我想最多进行10次(对于列),如果我选择要复制的列,我退出更清楚的是,有一个例子:我选择列B,D,F,然后选择要复制的行(它们对于所有列都是相同的),最后复制它们并将它们粘贴到新的工作簿中。所以我三次停下来并复制我选择的内容然后出去。

我的代码

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

任何帮助请解决它?

2 个答案:

答案 0 :(得分:0)

除了等待&#34;完成&#34;你还没有在你的循环中做任何事情。进入。

For i = 1 To 10
col = InputBox("Column number " & i & ", if finish write 'done'")
If col = "done" Then
    MsgBox ("copy finished")
    GoTo ExitIteration
Else
    Do While row <> "done"
        row = InputBox("row number to copy (max to 62), if finish write 'done'")
        Set CopyRange = Union(CopyRange, Range(col & row, [col & row]))
    Loop
End If
Next

答案 1 :(得分:0)

我没时间编写代码并为我的想法做一个例子,对不起。但我会尝试揭露它......

创建一个新工作表,使用de initial / final列和行提供代码,并组合不同的范围,以满足您最多10次的需求。使用三级循环将每个单元格连接到您需要的单元格。