excel单元格交换问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:38:18
在excel里,想将选中的同一行连接的两个单元格的值交换,例如:单元格c4与d4的值交换,下面的语句为什么总有错:

hang = Selection.Row
lie = Selection.Column
aa = Range(Cells(hang, lie)).Value
bb = Range(Cells(hang, lie + 1)).Value
cc = aa
aa = bb
bb = cc
Range(Cells(hang, lie)) = aa
Range(Cells(hang, lie + 1)) = bb

range、cells都可以指定单元格或区域,都可以看做range类型,range(cells())内外都是一个单元格简直是多此一举。
hang = Selection.Row
lie = Selection.Column
aa = Cells(hang, lie).Value
bb = Cells(hang, lie + 1).Value
cc = aa
aa = bb
bb = cc
Cells(hang, lie) = aa
Cells(hang, lie + 1) = bb

hang = Selection.Row
lie = Selection.Column
aa = Cells(hang, lie).Value
bb = Cells(hang, lie + 1).Value
cc = aa
aa = bb
bb = cc
Cells(hang, lie) = aa
Cells(hang, lie + 1) = bb

还可以简化
hang = Selection.Row
lie = Selection.Column
aa = Cells(hang, lie)
Cells(hang, lie) = Cells(hang, lie + 1)
Cells(hang, lie + 1) = aa

hang = Selection.Row
lie = Selection.Column
xx=cells(hang,lie)
cells(hang,lie)=cells(hang,lie+1)
cells(hang,lie+1)=xx

好像是传址而不是传值.要命名下