我试图让我的活动行中的单元格G等于上面一行中的验证列表的值。这是我的代码:
Range("G" & ActiveCell.Row).Value = Range("G" & ActiveCell.Row - 1).Value
问题是这会复制整个验证列表,我不希望这样,我只想将验证列表中选择的值复制到我的单元格中。
请有人告诉我我哪里出错了吗?
答案 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