excel - If Else 语句仅适用于 Excel VBA 用户窗体中的最后一行数据

标签 excel vba if-statement userform data-entry

我正在为听起来很简单的事情而苦苦挣扎,但我的代码有问题。
当我在文本框 1 中键入“序列号”时,我有一个带有 2 个文本框的用户表单,如果序列号与工作表中“RMA”列中的现有字段匹配,则文本框 2 中的“RMA 编号”会自动填充。
如果不匹配,我希望 textbox2 清除或说“不匹配”
我做了 If-Then-Else 类型的代码,但它似乎只适用于目前的最后一个条目......
我需要在我的代码中更改什么,以便它可以匹配所有条目并在序列号不匹配时清除?

    'Autopopulate RMA# with Serial Number

     Private Sub SN_TextBox1_Change()


     Dim serial1_id As String
     serial1_id = UCase(Trim(SN_TextBox1.Text))
     lastrow = Worksheets("RMA Tracker").Cells(Rows.Count, 1).End(xlUp).Row


       For i = 1 To lastrow
          If UCase(Worksheets("RMA Tracker").Cells(i, 4).Value) = serial1_id Then
          RMA_TextBox1.Text = Worksheets("RMA Tracker").Cells(i, 1).Value
    
    
          Else
    
           RMA_TextBox1.Value = ""
   
    
    
          End If
    

       Next i


      End Sub


最佳答案

我想你可以使用 Find()方法来满足您的目的。下面的代码将找到 TextBox1来自 RMA 列的值 (D:D) .如果找到匹配,则返回 Column A:A 的值匹配行到 TextBox2 .如果没有匹配,它将显示 No MatchTextBox2 留言.

Private Sub CommandButton1_Click()
Dim RMA As String
Dim Rng As Range

RMA = Me.TextBox1
    If Trim(RMA) <> "" Then
        With Sheets("RMA Tracker").Range("D:D") 'D:D for column 4
        Set Rng = .Find(What:=RMA, _
                     After:=.Range("A1"), _
                     Lookat:=xlWhole, _
                     LookIn:=xlFormulas, _
                     SearchOrder:=xlByRows, _
                     SearchDirection:=xlPrevious, _
                     MatchCase:=False)
            If Not Rng Is Nothing Then
                Me.TextBox2 = Rng.Offset(0, -3)
            Else
                Me.TextBox2 = "No Match"
            End If
        End With
     End If
End Sub
enter image description here

关于excel - If Else 语句仅适用于 Excel VBA 用户窗体中的最后一行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63107814/

相关文章:

excel - 单击定义为 DIV 的按钮,SVG 链接到 VBA 路径

vba - 数据透视表错误 1004

excel - 根据一个字母删除行

shell - 通过逻辑 && 和 || 表达 If then else

python - 无法通过不合逻辑的行 pep8 错误

excel - 需要将 Cobol 数据文件转换为 CSV、Excel

excel - 如何自动隐藏功能区,但仅适用于特定工作簿且仅适用于该工作簿中的一个工作表

vba - 单元格似乎是空的但不是的奇怪情况

VBA Excel 将副本另存为 txt 文件

r - R中使用ifelse()语句获取不同类的对象