从变量定义的范围粘贴

Pasting from a variable defined range

vba 的新手,我在粘贴时遇到困难。这是我的代码:

将 xtext 变暗为字符串

将 ytext 变暗为字符串

x = ActiveSheet.Range("A8")

y = ActiveSheet.Range("A9")

范围("A6").Select Selection.Copy

范围("xtext:ytext").Select Selection.Paste

收尾

单元格A8(变量x)值为B2,单元格A9(变量y)值为B10。我以为它会从 B2:B10 粘贴,但实际上是粘贴到 x:y 列中。所以我有点希望它像间接公式一样工作?我不确定这是否接近我想要的?

谢谢!

重命名您的变量 - "x" 和 "y" 不好,因为它们不能指示它们所持有的内容。在 Excel 中尤其如此,其中单个字母也指代一列 - 这就是此处发生的情况;您已发布到范围 "X:Y",这只是所有 X 列和所有 Y 列的选择。

您的整个代码一起变成了[请注意,我将您对 x 和 y 的定义更改为范围,而不是文本字符串,因此必须通过 "set = to" 使它们等于您的 A8 和 A9][假设在您的电子表格中,单元格 A8 显示 "B2",而 A9 显示 "B10"]:

Sub test()

Dim x As Range
Dim y As Range

Set x = ActiveSheet.Range("A8")
Set y = ActiveSheet.Range("A9")


Range("A6").Select
Selection.Copy

Range(x.Text, y.Text).Select
ActiveSheet.Paste

End Sub

编辑为现在间接引用单元格 A8 和 A9 中输入的内容