从上面的单元格中获取单元格的值

时间:2015-09-21 12:19:05

标签: excel vba

我试图让我的活动行中的单元格G等于上面一行中的验证列表的值。这是我的代码:

Range("G" & ActiveCell.Row).Value = Range("G" & ActiveCell.Row - 1).Value

问题是这会复制整个验证列表,我不希望这样,我只想将验证列表中选择的值复制到我的单元格中。

请有人告诉我我哪里出错了吗?

3 个答案:

答案 0 :(得分:0)

这样做的方法是使用复制粘贴:

Range("G" & ActiveCell.Row - 1).copy
Range("G" & ActiveCell.Row).select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False 

这种方式的缺点是它涉及到剪贴板......这意味着更多的资源和更慢的速度。

答案 1 :(得分:0)

使用R1C1格式而不是A1可能更容易。然后,您可以按R[-1]C6引用行来获取上一行和G列。如果您不想要列G而不是实际的当前列,而不是R[-1]C6,那么您可以放置​​{{ 1}}。

可以在“选项”菜单中更改单元格引用样式。

答案 2 :(得分:0)

您需要

PasteSpecial xlPasteValues 。这应该有效:

Range("G" & ActiveCell.Row - 1).Copy
Range("G" & ActiveCell.Row).PasteSpecial xlPasteValues