Excel VBA中组合框的datarange单元格必须具有什么格式?
当我在ComboBox1中选择一个值时,Combox2将自动填充指定范围的数据。在ComboBox2中选择一个值时,相应的值将放置在文本框中。 似乎当组合框值中只有数字时,代码将不起作用。 如果该值由字母、数字和字母组成,则一切正常。 我尝试了该范围内单元格的不同格式,但没有成功。在互联网上找到答案是有问题的,因为我不知道搜索的关键词 以下是我目前的代码:Excel VBA中组合框的datarange单元格必须具有什么格式?,excel,vba,combobox,range,cell-formatting,Excel,Vba,Combobox,Range,Cell Formatting,当我在ComboBox1中选择一个值时,Combox2将自动填充指定范围的数据。在ComboBox2中选择一个值时,相应的值将放置在文本框中。 似乎当组合框值中只有数字时,代码将不起作用。 如果该值由字母、数字和字母组成,则一切正常。 我尝试了该范围内单元格的不同格式,但没有成功。在互联网上找到答案是有问题的,因为我不知道搜索的关键词 以下是我目前的代码: Private Sub ComboBox1_Change() Dim index1 As Integer Dim cLoc1 As Rang
Private Sub ComboBox1_Change()
Dim index1 As Integer
Dim cLoc1 As Range
Dim index2 As Integer
Dim cLoc2 As Range
Dim ws As Worksheet
Set ws = Worksheets("Formlists")
index1 = ComboBox1.ListIndex
'index2 = ComboBox2.ListIndex
ComboBox2.Clear
ComboBox3.Clear
Select Case index1
Case Is = 0
With ComboBox2
For Each cLoc1 In ws.Range("Codelist1")
With Me.ComboBox2
.AddItem cLoc1.Value
End With
Next cLoc1
End With
Case Is = 1
With ComboBox2
For Each cLoc1 In ws.Range("Codelist2")
With Me.ComboBox2
.AddItem cLoc1.Value
End With
Next cLoc1
End With
End Select
End Sub
Private Sub combobox2_change()
Dim index2 As Integer
Dim ws As Worksheet
Set ws = Worksheets("Formlists")
index2 = ComboBox1.ListIndex
Select Case index2
Case Is = 0
With TextBox4
For i = 1 To 10
If ws.Cells(i + 1, Columns(90).Column).Value = ComboBox2.Value Then
TextBox4.Value = ws.Cells(i + 1, Columns(91).Column).Value
Else
'do nothing
End If
Next i
End With
Case Is = 1
With TextBox4
For i = 1 To 10
If ws.Cells(i + 1, Columns(92).Column).Value = ComboBox2.Value Then
TextBox4.Value = ws.Cells(i + 1, Columns(93).Column).Value
Else
'do nothing
End If
Next i
End With
End Select
End Sub
有没有办法让代码/组合框接受任何输入格式
提前谢谢
Rob似乎您只需要将值强制为代码中的字符串:
If CStr(ws.Cells(i + 1, 90).Value) = ComboBox2.Value Then
和其他测试一样。请注意,使用Columns90.Column而不仅仅是90没有任何意义 现在效果很好。谢谢。