Vba 在数组中循环,然后移动一些元素
因此,我试图编写一段代码,循环遍历一个数组,并找出该元素是否在另一个数组中,然后我尝试使用它们,因为我是VBA的新手,一些代码是我自己编写的,一些代码是我从这里借用的(如下面的函数) 更清楚的是(正如你在下面看到的-链接到一个屏幕截图),我在列数据中循环,看看每个元素(在每个单元格中)是否在我左边的列表中。如果是,则应在数据列旁边提取。但到目前为止,我写的只是提取元素中的一个。我不确定我应该在哪里添加一些条件,就像下面的屏幕上一样Vba 在数组中循环,然后移动一些元素,vba,excel,Vba,Excel,因此,我试图编写一段代码,循环遍历一个数组,并找出该元素是否在另一个数组中,然后我尝试使用它们,因为我是VBA的新手,一些代码是我自己编写的,一些代码是我从这里借用的(如下面的函数) 更清楚的是(正如你在下面看到的-链接到一个屏幕截图),我在列数据中循环,看看每个元素(在每个单元格中)是否在我左边的列表中。如果是,则应在数据列旁边提取。但到目前为止,我写的只是提取元素中的一个。我不确定我应该在哪里添加一些条件,就像下面的屏幕上一样 谢谢您的建议。您遇到的问题是 Cells(i, 4) = pa
谢谢您的建议。您遇到的问题是
Cells(i, 4) = partVal
这将始终将找到的项放入D列,每次找到新项时都会覆盖以前的值。您可以通过生成一个计数器变量来解决这个问题
Dim count As Integer
For i = 2 To maxRow
fullVal = dataSheet.Cells(i, 3).Value
splitArray() = Split(fullVal, "|")
count = 4
For j = 0 To UBound(splitArray)
partVal = splitArray(j)
If isInArray(partVal, List_Array) = False Then
Cells(i, count) = partVal
count = count + 1
End If
Next j
Next i
这将在任何时候发现匹配项时增加列号,并在开始检查新词时将其重置回起始位置
Dim count As Integer
For i = 2 To maxRow
fullVal = dataSheet.Cells(i, 3).Value
splitArray() = Split(fullVal, "|")
count = 4
For j = 0 To UBound(splitArray)
partVal = splitArray(j)
If isInArray(partVal, List_Array) = False Then
Cells(i, count) = partVal
count = count + 1
End If
Next j
Next i