为了找到这个问题的答案,我已经搜索了将近两天,这让我发疯了。我是VBA的新手,所以我没有任何代码可以分享,只是在尝试我在其他网站和youtube上找到的东西。我有一张我一直在处理的技术人员登录表,这些是我需要完成的步骤:
- 从";Metrology Tech;"计量技术登录"表上的组合框
- VBA搜索"计量跟踪器"中的H列以查找所有匹配的名称
- 来自"计量跟踪器"表中E列的批号被放入";批号";如果"计量跟踪器"表中M列中的值等于";挂起">
我在Userform-Excel VBA上尝试过这个创建依赖组合框,但它不起作用——它只是返回了我需要的列的所有值,所有其他文章和视频都是一样的。
我应该注意的一件事是,计量跟踪器中的大多数值都是从另一个文件中引用的,因此批号等于另一文件中的单元格值。
编辑:我试过了,尽管我知道它不会起作用
Private Sub cboTech_change()
Select Case cboTech.Value
Case Is = "employee 1"
cboLotNum.RowSource = "LotNumber"
Case Is = "employee 2"
cboLotNum.RowSource = "LotNumber"
Case Is = "employee 3"
cboLotNum.RowSource = "LotNumber"
End Select
End Sub
也尝试过这个,但一直得到一个";需要运行时错误"424"对象";
Sub FndLot()
Dim idx As Long
Dim lngRow As Long
idx = TechBox.ListIndex
If idx <> -1 Then
lngRow = TechBox.ListIndex
Worksheets("Metrology Tracker").Range("E" & lngRow).Value = LotNum.Value
End If
End Sub
不太确定你想要什么,但这应该会让你开始。
Private Sub cboTech_Change()
Dim sName As String
sName = cboTech.Text
cboLotNum.Clear
Dim ws As Worksheet, lastrow As Long, i As Long
Set ws = Sheets("metrology tracker")
With ws
lastrow = .Cells(.Rows.Count, "H").End(xlUp).Row
For i = 1 To lastrow
If .Cells(i, "H") = sName And .Cells(i, "M") = "pend" Then
cboLotNum.AddItem .Cells(i, "E")
End If
Next
End With
End Sub