从变量定义的范围中粘贴

时间:2015-07-10 17:49:02

标签: variables excel-indirect pasting

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

Dim xtext As String

Dim ytext As String

x = ActiveSheet.Range(" A8")

y = ActiveSheet.Range(" A9")

范围(" A6&#34)。选择 Selection.Copy

范围(" XTEXT:ytext&#34)。选择 Selection.Paste

Endsub

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

谢谢!

1 个答案:

答案 0 :(得分:0)

重命名变量 - “x”& “y”很糟糕,因为它们并不表示他们持有什么。在Excel中尤其如此,其中单个字母也指一列 - 这就是这里发生的事情;你已经发布了范围“X:Y”,它只是所有列X的选择,以及所有列Y.

你的整个代码变成了[请注意,我将x和y的定义更改为范围,而不是文本字符串,因此必须使它们等于您的A8& A9 by“set = to”] [在您的电子表格中假设单元格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和A8的细胞。 A9