0
我在我的表格中搜索某个值的范围,当找到这些值中的任何一个时,我想将该行的A列中的值添加到数组中,只添加数组中不存在的值。一旦范围被搜索,我想打印数组到指定的单元格在工作表中的2个不同的列。将值添加到动态数组,然后打印到指定的单元格
这里是我到目前为止的代码:
Dim Ws As Worksheet
Set Ws = Sheets("Sheet1")
Dim Leave() As Variant, Join() As Variant
Dim LastCol As Integer, LastRow As Integer, i As Integer, Z As Integer
Dim J As Long, L As Long
With Sheets("Sheet1")
'Find Last Col
LastCol = Sheets("Sheet1").Cells(3, Columns.Count).End(xlToLeft).Column
'Find last Row
LastRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
LastRow = LastRow - 1
'ReDim Leave(1 To (LastRow - 1), LastCol)
'ReDim Join(1 To (LastRow - 1), LastCol)
For i = 5 To LastCol
For Z = 4 To LastRow
If Sheets("Sheet1").Cells(Z, i).Value = "0" Then
Leave(L) = Ws.Cells(Z, 1).Value
ElseIf Sheets("Sheet1").Cells(Z, i).Value = "-2" Then
Join(J) = Ws.Cells(Z, 1).Value
End If
Next Z
Next i
'Print array
End With
感谢提前任何指针/帮助!
在匆忙作出详细的看看你的代码现在。但要提两件事:1)不要使用Join作为变量,是一个保留字; 2)检查值是否已经在数组中,请看[这里](https://stackoverflow.com/a/34754113/1726522)(最后一个函数)。 – CMArg
您遇到什么问题?我可以告诉你,当'Leave'和'Join'被更新时(即Leave(L)= Ws.Cells(Z,1)),你会想增加'L'和'J'值。 L = L + 1'),或者每次迭代都会覆盖'Leave(0)'和'Join(0)'。 –
是否有任何东西阻止您使用字典或集合对象而不是数组? – KacireeSoftware