【发布时间】:2020-03-07 21:39:24
【问题描述】:
我有一个很简单的问题。我将简化示例。我得到了 2 列的 excel 表。在第一列中,我想保留重复的项目,比如说 'apple' 。但在另一列中,它们有所不同,比如“绿色”、“红色”等。
我有带有组合框和文本框的用户表单。组合框与带有苹果的列相关,文本框与具有不同值的列相关 - 颜色。当我在组合框中选择项目时,它将在文本框中显示相关值。但是每次我在组合框中选择Apple 时,它只会显示最后一个选项 - 在这种情况下为red。
有办法治疗吗?
A列的项目必须相同,不能是apple1、apple2等。
并且A列中将有更多项目,并且所有项目都可以重复,例如apple,apple,pear,orange,orange,orange ...
这是一个糟糕的例子,但我希望它有意义
请帮忙:)
Private Sub Userform_click()
Dim fruit As String
Dim color As String
row_number = 1
Do
fruit = Sheets("List1").Range("A" & row_number)
color = Sheets("List1").Range("B" & row_number)
If ComboBox1 = fruit Then
TextBox1 = color
End If
row_number = row_number + 1
Loop Until fruit = ""
End Sub
Private Sub CommandButton1_Click()
Dim fruit As String
row_number = 2
With ComboBox1
.Clear
End With
Do
fruit = Sheets("List1").Range("A" & row_number)
If fruit <> "" Then
With ComboBox1
.AddItem fruit
End With
End If
row_number = row_number + 1
Loop Until fruit = ""
End Sub
这只是一个简单的例子。
每次我搜索这个时,我只发现“如何删除重复项”:(。
编辑:
好吧,伙计们还有一件事,这是附上的一张图片,其中说明了我想要做什么(再次),但是您能否将完整的代码发送给我(如果不是太复杂的话?)。我还是想不通。 (新手)
代码:
Private Sub CommandButton1_Click()
Dim fruit As String
Dim number As String
row_number = 1
With ComboBox1
.Clear
End With
Do
number = Sheets("List1").Range("A" & row_number)
fruit = Sheets("List1").Range("B" & row_number)
If TextBox1 = number Then
With ComboBox1
.AddItem fruit
End With
End If
row_number = row_number + 1
Loop Until fruit = ""
End Sub
Private Sub ComboBox1_Change()
Dim fruit As String
Dim fshape As String
Dim fcolor As String
row_number = 1
Do
fruit = Sheets("List1").Range("B" & row_number)
fshape = Sheets("List1").Range("C" & row_number)
fcolor = Sheets("List1").Range("D" & row_number)
If ComboBox1 = fruit Then
TextBox2 = fshape
TextBox3 = fcolor
End If
row_number = row_number + 1
Loop Until fruit = ""
End Sub
【问题讨论】:
-
请edit您的问题并显示您的代码。你如何填充组合框?你如何获得文本框的值?阅读minimal reproducible example 可能会帮助您改进您的问题。
-
利用
AutoFilter获取ComboBox所需的行,但正如@Pᴇʜ 上面提到的,没有您当前的代码以及如何获取值,很难更具体. -
对不起,这部分的代码很简单,我没有意识到这很重要,而且我在我的手机上,因为电脑不在线 :) 但我会编辑
-
@Majkl 您必须使用多列组合框并从组合框的第二列填充文本框。否则你无法区分“Apple”和“Apple”。请参阅Inserting values into multicolumn combobox • 由于您没有展示如何填充组合框(请参阅我之前的评论),我们无法提供更详细的帮助。
-
我知道,我正在努力 :) 但在电话上很糟糕:D
标签: excel vba duplicates userform