用VBA写将查找值所在的列赋值给数组
时间: 2024-05-10 15:14:16 浏览: 185
可以使用以下VBA代码将查找值所在的列赋值给数组:
```
Sub FindColumn()
Dim searchValue As Variant
Dim lastColumn As Long
Dim columnArray() As Long
Dim i As Long
searchValue = "value to search for"
lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
ReDim columnArray(1 To lastColumn)
For i = 1 To lastColumn
If Cells(1, i).Value = searchValue Then
columnArray(i) = i
Else
columnArray(i) = 0
End If
Next i
End Sub
```
在上面的代码中,`searchValue`是要查找的值,`lastColumn`是工作表中最后一列的列号。然后,使用`ReDim`语句调整`columnArray`数组的大小以匹配工作表的列数。
在`For`循环中,使用`Cells`函数遍历工作表中的每一列。如果单元格中的值等于`searchValue`,则将列号存储在`columnArray`数组中的相应位置。否则,将0存储在数组中的相应位置。
请注意,此代码将列号存储在数组中,而不是将列范围存储在数组中。如果需要存储列范围,可以将数组类型更改为`Range`类型,并在循环中使用`Range`对象来定义每个列的范围。
阅读全文