1

在用户选择两个不连续的列范围的情况下,我写了以下内容:

Dim count long
Dim points variant
Dim i long

Set user_range = ActiveWindow.RangeSelection

count = user_range.count / 2

ReDim points(1 To count, 1 To 2)

For i = 1 To count

    MsgBox "value is" & user_range.Areas.Item(1).Value(i,1)

    points(i, 1) = user_range.Areas.Item(1).Value(i,1)

    points(i, 2) = user_range.Areas.Item(2).Value(i,1)


Next i

但是当我尝试这个时,我得到一个对象错误。我索引值错误吗?

这应该有效吗?有没有更简单的方法来做到这一点?

任何帮助是极大的赞赏!

谢谢,

拉斯

4

1 回答 1

1

恐怕您的代码无法编译。首先,您需要正确声明变量。您还应该使用Option Explicit

Option Explicit

Dim count As Long
Dim points As Variant
Dim i As Long
Dim user_range As Range

count 和 ReDim 行都可以,但您假设这两个选择的大小相同。会一直这样吗?

然后我不确定你想要做什么,但我猜你只是想将值保存user_rangepoints.

您需要对它们进行一些不同的处理:

points(i, 1) = user_range.Areas(1).Cells(i, 1).Value    'Selection 1
points(i, 2) = user_range.Areas(2).Cells(i, 1).Value    'Selection 2
于 2012-09-21T21:30:55.310 回答