Excel 2010 VBA – 获取当前单元格的左侧单元格?
我的表是这样的:
| A | B | ... --------- | 1 | a | ... --------- | 2 | | --------- | 3 | | --------- | 4 | b | ---------
我想这是我的输出:
| A | B | ... --------- | a | | ... --------- | 2 | | --------- | 3 | | --------- | b | | ---------
所以我循环B
列,每当B
有一个值,那么我应该replaceA
相应的一个
到目前为止,我已经试过这样的:
Sub LoopRange() Dim rCell As Range Dim rRng As Range Set rRng1 = Sheet1.Range(A1, A1000) Set rRng2 = Sheet1.Range(B1, B1000) For Each rCell In rRng2.Cells If Not IsEmpty(rCell.Value) Then 'SET THE VALUE OF THIS rCELL TO THE CELL THAT'S LEFT OF IT Next rCell End Sub
我该怎么做呢?
你可以做这个没有循环利用Evaluate
:
Sub QuickKill() Range("A1:A1000") = Application.Evaluate("=IF(B1:B1000<>"""",B1:B1000,A1:A1000)") End Sub
解决了! 但请检查brettdj的答案。 我想这样比较好
Sub LoopRange() Dim rCell As Range Dim rRng As Range Set rRng = Sheet1.Range("B1:B1000") For Each rCell In rRng.Cells If Not IsEmpty(rCell.Value) Then rCell.Offset(0, -1) = rCell.Value End If Next rCell End Sub
使用这个代码
For each c in range("a2"a8") c.value= c & " " & c.offset(,1) next c columns(2).delete
上面的代码将结合两列
c.value= c.offset(,1)