Arrays Excel VBA数组
这让我发疯。我试图从用户选择的行中提取符合条件(TRUE或1)的列的值,仅将这些值保存到数组中,然后将数组写入范围。这就是全部。谁能告诉我我做错了什么Arrays Excel VBA数组,arrays,excel,vba,Arrays,Excel,Vba,这让我发疯。我试图从用户选择的行中提取符合条件(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(c
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,否则您的数组值将被覆盖马特克里米人
这就是问题所在。谢谢你,马特。真希望我能给你一个肯定的答案,但是你把它作为一个评论贴了出来SteveS.哪一行收到错误?实际上,我没有收到错误。我只是得到了意想不到的结果,即“selected_rep_needs”范围没有写入任何内容。此外,名为“y”的数组不包含除最后一个下标(“计数器”的最后一个值)之外的任何值。我不认为
应用程序中的range name参数。为x(I)
赋值的Index
应该是“dev_需要\u hdrs”,而不仅仅是“dev_需要”(?)。此外,看起来您需要ReDim Preserve
,否则您的数组值将被覆盖。谢谢matt!实际上,“开发人员需要HDR”是正确的。我补充了这一点,而不是重新定义“dev_needs”范围以包含标题行。可能是糟糕的编程。我不知道雷迪姆保护区。我现在要用谷歌搜索这个问题。你也应该接受你自己的答案,因为这将鼓励其他人研究这个问题并学习:)我会这样做,只要我被允许。确定你自己的答案需要三天的等待。谢谢你看了这条线。我很感激我在这里得到的快速帮助!