交换两个范围
我正在尝试编写交换两个范围的代码:
Sub SwapRanges() Dim range1 As Range Dim range2 As Range Dim holder As Range range1 = Range("D7:D12") range2 = Range("E7:E12") holder = Range("F7:F12") Set holder = range1 Set range1 = range2 Set range2 = holder End Sub
但得到运行时错误91 。
错误的原因是您在分配范围时没有使用Set
命令。 另外,明白这个代码:
Set holder = range1 Set range1 = range2 Set range2 = holder
只改变variablesholder
, range1
和range2
引用的范围。 它实际上并不将这些引用中包含的数据从一个范围复制到另一个范围。
下面的代码将执行实际的复制,同时也解决运行时错误。
Sub SwapRanges() Dim range1 As Range Dim range2 As Range Dim holder As Range Set range1 = Range("D7:D12") Set range2 = Range("E7:E12") Set holder = Range("F7:F12") range1.Copy holder range2.Copy range1 holder.Copy range2 End Sub
我会尝试这种方式(对不起,没有testing – 从一个Chrombook写:)
Sub SwapRanges() Dim range1 As Range Dim range2 As Range Dim holder() as variant Set range1 = Range("D7:D12") Set range2 = Range("E7:E12") holder = range1 range1 = range2 range2 = holder End Sub
而不是应付,你可以说:holder = range1 Range2 = range1 Holder = range2
不是真的与问题pnuts相关的回答,但我认为这将有助于您的应用程序。