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)