Vba 交换两个范围
我正在尝试编写用于交换两个范围的代码:Vba 交换两个范围,vba,excel,Vba,Excel,我正在尝试编写用于交换两个范围的代码: 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 = holde
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
仅更改变量holder
、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
我会尝试这种方式(对不起,未经测试-从Chrombook上书写:)
你可以说: 保持架=范围1 范围2=范围1 保持架=范围2
与pnuts回答的问题不太相关,但我认为这对您的应用程序会有帮助。我假设这没有经过测试?我假设这没有经过测试?@ashleedawg无需在3年后进行假设。第一行写的是黑白相间的。
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