VBA将值移动到相邻单元格

时间:2015-03-09 18:40:38

标签: excel vba

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

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) = ""

示例:

   A  B
1  "" 1

期望的结果:

   A  B
1  1  ""

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

3 个答案:

答案 0 :(得分:1)

在上面的代码中,我将更改它,如下所示,完成相同的任务,引用范围对象的各个单元格:

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

答案 1 :(得分:1)

为什么要把值放在值2之后?

这很好用......

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

答案 2 :(得分:0)

我最终在有问题的一个中定义了另一个Range,我使用Offset来引用该Range旁边的Cell,它不是很优雅,但它解决了这个问题。

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 = ""