Excel VBA数组

这使我疯狂。 我试图从用户select的行中提取符合我的条件(TRUE或1)的列的值,仅将这些值保存到数组,然后将数组写入一个范围。 就这样。 谁能告诉我我做错了什么?

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 

此外,它看起来像你需要ReDim保存或您的数组值将被覆盖。 – 马特Cremeens

这是个问题。 谢谢Matt。 希望我可以给你信用的答案,但你张贴它作为评论! – SteveS。