根据值查找单元格位置然后执行某些操作 - User Forms VBA Excel

时间:2012-07-05 03:05:21

标签: excel vba excel-vba userform

我有编程经验,但是,我是VBA的新手。我有一个我正在处理的用户表单。此表单有一个组合框,其中包含一个初始化的列表。我想做的是:

*获取用户从ComboBox输入的ID号值 *获取用户输入的值,并使用工作表中的一系列值找到匹配项(即Worksheet.Range(“ID_Number_List”)) *一旦获得匹配,就获得它匹配的单元格的位置 * Off将单元格的位置设置为一列,以获取与ID号(相同行)相关的名称,将其设置为textBoxName.Value *关闭设置两列以获取与ID号相关的电话号码并将其设置为textboxTele.value

我希望只要从Combobox中选择一个值就会发生这种情况,所以我的问题是我的代码是在组合框中还是在下一个文本框中?因此,当该人员切换到下一个文本框时,代码将自动执行。我希望代码完全执行而不必切换到下一个框。

这段代码不完整,但这里是我所拥有的(我没有添加off set部分,我只是执行了测试):

Dim ORIValue As String 
'get value from combo_box Set 
ORIValue = COMBO_ORILIST.Value

Dim cLoc As Range 
Dim cORIVal As Range

'worksheet with the ID information Dim ORISheetList As Worksheet 
Set ORISheetList = Worksheets("ORI_LIST")

'
For Each cLoc In ORISheetList.Range("ORI_LIST")
'compare the input string from list- considering using Match function for this
If StrComp(cLoc, ORIValue,  vbTextCompare) Then TextBAgencyName.Value = "test"
Else: Next cLoc
End If

让我知道你的想法。如果我必须改写我想要的一切。

1 个答案:

答案 0 :(得分:1)

您的代码无法编译。

如果您的用户表单包含一个名为ComboBox1的组合框,则需要将您的单元格查找代码放在表单代码中,如下所示:

Private Sub ComboBox1_Change()
    MsgBox "yep, this is where the code should go"
End Sub

我怀疑使用组合框的rowsource属性和所选值的索引,您可能不需要实际执行搜索所选值。这样的事情可能有用:

Private Sub ComboBox1_Change()
    MsgBox Range(ComboBox1.RowSource).Cells(ComboBox1.ListIndex + 1)
End Sub

希望有所帮助。