gpt4 book ai didi

vba - 将整个列(列中的每个值)放入数组中?

转载 作者:行者123 更新时间:2023-12-01 21:47:46 26 4
gpt4 key购买 nike

所以我正在制作一个宏来做很多事情。一件事是从sheet2中查找sheet1中单元格的重复项。给定sheet 1中的columnA,sheet2上的columnB中的任何值是否与sheet1中columna中的任何值匹配。

我知道有删除重复项,但我只想标记它们,而不是删除。

我在想一些关于过滤的事情。我知道当您进行过滤时,您可以选择多个条件,因此,如果您有一列包含 20 个不同的值,您可以在过滤器中选择 5 个值,它将显示特定列中包含这 5 个值的行。所以我记录了一个宏,并检查了代码,我发现它使用了一个字符串数组,其中要搜索的每个值都在一个字符串数组中。有没有办法只指定整个列并将每个值添加到字符串数组中?

提前致谢

最佳答案

以下是将项目加载到数组中的三种不同方法。第一种方法要快得多,但只是将所有内容存储在列中。不过,您必须小心这一点,因为它会创建一个多维数组,而该数组不能传递给自动过滤器。

方法一:

Sub LoadArray()
Dim strArray As Variant
Dim TotalRows As Long

TotalRows = Rows(Rows.Count).End(xlUp).Row
strArray = Range(Cells(1, 1), Cells(TotalRows, 1)).Value

MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub

方法2:

Sub LoadArray2()
Dim strArray() As String
Dim TotalRows As Long
Dim i As Long

TotalRows = Rows(Rows.Count).End(xlUp).Row
ReDim strArray(1 To TotalRows)

For i = 1 To TotalRows
strArray(i) = Cells(i, 1).Value
Next

MsgBox "Loaded " & UBound(strArray) & " items!"
End Sub

如果您提前知道这些值并且只想将它们列在变量中,您可以使用 Array() 分配一个变体

Sub LoadArray3()
Dim strArray As Variant

strArray = Array("Value1", "Value2", "Value3", "Value4")

MsgBox "Loaded " & UBound(strArray) + 1 & " items!"
End Sub

关于vba - 将整个列(列中的每个值)放入数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21268383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com