gpt4 book ai didi

excel - 复制粘贴非连续范围

转载 作者:行者123 更新时间:2023-12-02 10:37:13 25 4
gpt4 key购买 nike

我有 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 的可能性,要么我犯了一个错误(一遍又一遍)。

那么我是否必须更改我的代码或者我是否必须解决它?我的替代解决方案是复制粘贴两个范围中的每一个,将它们放在彼此下方,然后复制整个现在连续的范围。

最佳答案

您可以使用 Range 对象的 Areas 属性来获取联合范围。像下面这样的代码将循环遍历每个子范围,复制它们并将它们粘贴到其他地方。尝试并适应您的需求,如果您需要帮助,请回信。

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

关于excel - 复制粘贴非连续范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55690218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com