VBA将移动值移到adjecent cell

确定它只是简单的两行代码,由于某种原因不能按预期工作。 我确定它很简单,但我不能把它放在手指上:

Dim Series as Range Dim i as Integer Set Series = Range("A1:B1") i = 1 ' Following two lines apparently don't do anything ' I would have expected them to move value of cell B1 to A1, and make B1 blank Series.Value2(1, i) = Series.Value2(1, i + 1) Series.Value2(1, i + 1) = "" 

例:

  AB 1 "" 1 

预期结果:

  AB 1 1 "" 

再次,我知道它是一个非常简单的(和简化的)代码,但我无法弄清楚。

在上面的代码中,我将改变它如下来完成相同的任务,参考范围对象的单个单元格:

 Series(i).Value2 = Series(i + 1).Value2 Series(i + 1).Value2 = "" 

你为什么把()放在value2之后?

这工作得很好…

 Series(1, i).Value2 = Series(1, i + 1).Value2 Series(1, i + 1).Value2 = "" 

我最终定义了一个有问题的范围内的另一个范围,我使用偏移引用单元旁边的范围,它不是很优雅,但它解决了这个问题。

 Dim Series as Range Dim S_Point as Range Dim i as Integer Set Series = Range("A1:B1") i = 1 Set S_Point = Cells( Series.Row, i) S_Point.Value2 = S_Point.Offset(0,1).Value2 S_Point.Offset(0,1).Value2 = ""