gpt4 book ai didi

excel - 创建空列表,然后将元素附加到该列表

转载 作者:行者123 更新时间:2023-12-04 21:20:01 25 4
gpt4 key购买 nike

我有尝试转换为 VBA 的 Python 代码。

List = [] 

For x in range:
if x not in list:
list.append(x)

我将创建一个空列表,Python 代码将遍历我想要的数据(此处定义为“范围”),然后检查该元素是否在列表中,如果不在,则添加它。

我正在尝试在 VBA 中做同样的事情。它需要向下一列,并将该列中的唯一元素添加到 VBA 列表中。

根据搜索,我有这个:
Dim list() As Variant

For n = 1 To end
If list.Contains(Cells(n,1).value) Then
list(n) = Cells(n,1).value
n= n+1

当我运行此代码时,我收到一个错误,它突出显示
If list.Contains(Cells(n,1).value) Then

并说

"Invalid qualifier".



我尝试将其更改为
if list.Contains(Cells(n,1).value) = True

添加限定符。

我需要做的就是创建一个字符串列表。有没有更好的方法在 VBA 中做到这一点?

最佳答案

这可能是一个糟糕的答案,但是由于我不使用字典,因此我是如何创建一个唯一值数组的 - 在本例中,我将 A 列中的所有唯一值添加到一个数组中(然后将它们全部打印在结束)

Option Explicit
Sub Test()

Dim list() As Variant
Dim inlist As Boolean
Dim n As Long, i As Long, j As Long, endrow As Long

endrow = Cells(Rows.Count, 1).End(xlUp).Row

ReDim list(0 To 0)
inlist = False
j = 0

For n = 1 To endrow
For i = 0 To UBound(list)
If list(i) = Cells(n, 1).Value Then
inlist = True
End If
Next i

If inlist = False Then
list(j) = Cells(n, 1).Value
j = j + 1
ReDim Preserve list(0 To j)
End If

inlist = False
Next n

For i = 0 To UBound(list) - 1
Debug.Print list(i)
Next i

End Sub

关于excel - 创建空列表,然后将元素附加到该列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53891590/

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