gpt4 book ai didi

excel - 组合框中仅包含唯一记录 (VBA)

转载 作者:行者123 更新时间:2023-12-03 00:04:04 27 4
gpt4 key购买 nike

我有一个组合框,我可以在其中添加 Excel 工作表中的一些内容和一堆内容。我只想要唯一的记录,并且希望在切换到此页面时更新它们。为此,我使用了以下代码:

Private Sub MultiPage1_Change()
Dim Rand As Long
Dim ws As Worksheet
Set ws = Worksheets("BD_IR")
Dim i As Long
Rand = 3
Do While ws.Cells(Rand, 3).Value <> "" And Rand < 65536
If Me.repereche.ListCount <> 0 Then
For i = 0 To (Me.repereche.ListCount)
If Me.repereche.List(i, 0) <> Mid(ws.Cells(Rand, 3).Value, 4, 10) Then
Me.Controls("repereche").AddItem Mid(ws.Cells(Rand, 3).Value, 4, 10)
End If
Next i
ElseIf Me.repereche.ListCount = 0 Then
Me.Controls("repereche").AddItem Mid(ws.Cells(Rand, 3).Value, 4, 10)
End If
Rand = Rand + 1
Loop

这段代码的问题(我不知道问题出在哪里?)是,每当我更改页面并返回到该组合框所在的页面时......它会添加更多(不是唯一的)并且更多项目。我哪里错了?

最佳答案

试试这个代码:

Dim ws As Worksheet
Dim rCell As Range

Set ws = Worksheets("BD_IR")

'//Clear combobox
repereche.Clear

With CreateObject("Scripting.Dictionary")
For Each rCell In ws.Range("C3", ws.Cells(Rows.Count, "C").End(xlUp))
If Not .exists(rCell.Value) Then
.Add rCell.Value, Nothing
End If
Next rCell

repereche.List = .keys
End With

与集合相比,我更喜欢这个,因为您可以检查字典中是否存在该值,而不是在错误时使用并将整个集合立即添加到组合框中。

关于excel - 组合框中仅包含唯一记录 (VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7840343/

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