如何选择多个范围并使用Excel vba将它们放入剪贴板?

时间:2016-04-01 14:07:17

标签: excel vba excel-vba

我需要使用ExcelVBA文件中选择多个范围,然后将它们复制到剪贴板中,然后将它们粘贴到文本编辑器中。我记录了几个宏 - 每个宏都用于每个范围。但在这种情况下,我需要运行第一个宏然后粘贴,然后第二个,依此类推。这非常耗时。有没有办法选择第一个范围并粘贴到剪贴板内,然后在剪贴板中添加下一个范围?

我想我可以收集var中的所有选项然后粘贴,但我不会使用VBA并且我不知道我必须使用的对象。

我的代码看起来:

Sub step01_Select_DB_Structure()
' Select DB structure and copy into memory
    Range("GF4:GG1000").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

Sub step02_Select_UK_Index()
' Select UK column
    Range("GH4:GH1000").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

Sub step03_Select_PK_Index()
' Select PK column
    Range("GI4:GI1000").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

Sub step04_Select_FK_Index()
' Select FK column
    Range("GJ4:GJ1000").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

Sub step05_Select_Others()
' Select Other columns
    Range("GK4:GP1000").Select
    Application.CutCopyMode = False
    Selection.Copy
End Sub

修改

我的情况我需要一个接一个地以相同的顺序粘贴Clipboard中的范围,因为我使用Excel来创建公式,如果我尝试粘贴整个范围,结果不是有效的。

1 个答案:

答案 0 :(得分:0)

您可以使用Union将多个范围区域组合到单个Range对象中     


    Dim rng As Range
    Set rng = Union(Range("A1:A3"),Range("B6:B9"))
    rng.Copy
    
但是在您的情况下,您似乎想要复制单个区域范围,即GF4:GP1000。根本不需要联盟