这使我变得疯狂。我试图从用户选择的行中提取符合我的条件(TRUE或1)的列的值,仅将这些值保存到数组中,然后将数组写入一个范围。就这样。谁能告诉我我做错了什么?Excel VBA数组
Sub DevNeeds()
Dim x(), y(), needs() As Variant
Dim counter As Integer
columns_in_range = Range("dev_needs_hdrs").Columns.Count
counter = 1
Debug.Print "i", "counter", "y(counter)"
For i = 1 To columns_in_range
ReDim x(columns_in_range), needs(columns_in_range)
x(i) = Application.Index(Range("dev_needs"), Range("selected_row").Value, i)
needs(i) = Application.Index(Range("dev_needs_hdrs"), 1, i)
If (x(i) = True Or x(i) = 1) Then
ReDim y(counter)
y(counter) = needs(i)
counter = counter + 1
End If
Next i
counter = counter - 1
With Range("selected_rep_needs")
.ClearContents
.Resize(1, counter) = y
End With
End Sub
什么行接收错误? – 2014-09-02 19:42:42
其实,我没有收到错误。我只是得到意想不到的结果,即范围“selected_rep_needs”没有得到任何写入的结果。另外,名为“y”的数组除了最后一个下标(最后一个值为“counter”)以外不包含任何值 – SteveS 2014-09-02 19:56:39
我不假设'Application.Index'中的范围名称参数将值赋给'x(我)'应该是“dev_needs_hdrs”,而不仅仅是“dev_needs”(?)。 – 2014-09-02 20:04:40