如何将不连续(用户选择的)范围组合到单个变量中,并将范围内容移动到另一个工作表

时间:2014-09-09 18:01:46

标签: variables excel-vba range union vba

我让用户手动选择不连续的范围,然后我试图将单元格的值放在另一个工作表的那些范围内。我似乎无法移动数据,并且我得到了一个"应用程序定义或对象定义错误"在结束sub之前的最后一行。我的数据迁移在哪里出错?

在做了大量的搜索和阅读后,我想出了使用union命令将范围组合成单个变量的可能性,但我似乎无法弄清楚是否可以使用union这种方式涉及多个范围。我认为这一切都错了,有没有更好的方法来解决这个问题?我应该创建一个数组来存储多个范围,然后反过来将所选数据吐出到新工作表中吗?

使用这样的东西?然后从数组中拉出来获取我想要的数据。

Sub accessAll()
Dim selRng As Range
Sheets("Sheet1").Select
Set selRng = Application.InputBox(Prompt:="Select Range", Title:="", Type:=8)

For Each cell In Selection
    (do something here to push data to an array)
Next cell
End Sub

我试图使用的原始代码如下,它的简短直截了当(或者我认为),但我得到了前面提到的错误。我对VBA代码仍然缺乏经验,而且基本上是在教自己,所以请原谅对正确方法的无知。

有关如何进行的建议或我应该回顾的方法?我现在在这个问题上真的迷失了。

Sub SelectRange()

Dim selRng As Range

Sheets("Sheet1").Select
Set selRng = Application.InputBox(Prompt:="Select Range", Title:="", Type:=8)

MsgBox selRng.Address

Sheets("Sheet2").Range(selRng).Value = Sheets("Sheet1").Range(selRng).Value

End Sub

0 个答案:

没有答案