我在Excel中有数据。我想将标题和一些数据从表格的中间复制到Powerpoint。我知道您无法在Excel中复制非相邻单元格的选择,但我对它可以在VBA中使用感到印象深刻。
我的尝试:
With Workbooks(1).Sheets(1)
Set rng = Union(.Range("B2:K3"), .Range("B45:K85"))
End With
我可以选择“ rng”,但不能将其粘贴到任何地方,因为我收到错误消息,即您不能粘贴不相邻的单元格。
我也尝试过此方法,但是导致整个表(B2:K85)被复制:
With ThisWorkbook.Sheets("Sheet1")
Set rng1 = .Range("B2:K3")
Set rng2 = .Range("B45:K85")
Set NewRng = .Range(rng1.Address & ":" & rng2.Address)
End With
我已经搜索了这个问题并尝试了各种方法,但是我误解了VBA可能发生的情况,或者我犯了一个错误(一遍又一遍)。
那么我必须更改我的代码还是必须解决它?我的替代解决方案是复制粘贴两个范围中的每个范围,将它们置于彼此之下,然后复制整个现已连续的范围。
答案 0 :(得分:4)
您可以使用Areas
对象的Range
属性来获取联合范围。如下所示的代码将循环遍历每个子范围,将其复制并粘贴到其他位置。尝试适应您的需求,并在需要帮助时回信。
Sub Test()
Dim rng As Range
Dim r As Range
Dim destination As Range
Set rng = Union(Range("A1:B3"), Range("D1:E2"))
Set destination = Range("H1")
For Each r In rng.Areas
r.Copy destination
Set destination = destination.Offset(, 3)
Next r
End Sub