Excel 如何在清理其他Userform控件时不清理特定的文本框?

Excel 如何在清理其他Userform控件时不清理特定的文本框?,excel,vba,textbox,Excel,Vba,Textbox,在我的Userform上,我有一个文本框(比如Txt1)。我使用它作为我的列表框(Lst1)的搜索栏 当我将任何表达式写入Txt1时,我会在Lst1中找到我要查找的内容。 这两个(Txt1和Lst1)集成到我的库存计划中 当我用Txt1搜索任何产品时,我可以从Lst1中选择产品名称 当我从Lst1中选择产品时,我将数量写入Txt2并按enter键。 它在程序的后面进行必要的处理 当我按enter键时,Txt1会自动清洗。 我需要将新产品名称重新写入Txt1 我想要: 不清洁Txt1 Txt1代码

在我的Userform上,我有一个文本框(比如Txt1)。我使用它作为我的列表框(Lst1)的搜索栏

当我将任何表达式写入Txt1时,我会在Lst1中找到我要查找的内容。 这两个(Txt1和Lst1)集成到我的库存计划中

当我用Txt1搜索任何产品时,我可以从Lst1中选择产品名称

当我从Lst1中选择产品时,我将数量写入Txt2并按enter键。 它在程序的后面进行必要的处理

当我按enter键时,Txt1会自动清洗。
我需要将新产品名称重新写入Txt1

我想要:
不清洁Txt1

Txt1代码:

Private Sub TextBox17_Change()

Dim i As Long
Me.TextBox17.Text = StrConv(Me.TextBox17.Text, 1)
Me.ListBox4.Clear
For i = 2 To Application.WorksheetFunction.CountA(Sayfa2.Range("C:C"))
    a = Len(Me.TextBox17.Text)
    If Left(Sayfa2.Cells(i, 3).Value, a) = Left(Me.TextBox17.Text, a) Then
        Me.ListBox4.AddItem Sayfa2.Cells(i, 3).Value
        Me.ListBox4.List(ListBox4.ListCount - 1, 3) = Sayfa2.Cells(i, 10).Value
    End If
Next i

End Sub
Private Sub ListBox4_Click()

Dim i As Long, lastrow As Long
lastrow = Sheets("CDepo").Range("C" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow
    If CStr(Sheets("CDepo").Cells(i, "C").Value) = (Me.ListBox4.Value) Then
        Me.TextBox2 = Sheets("CDepo").Cells(i, "A").Value
        Me.TextBox11 = Sheets("CDepo").Cells(i, "H").Value
        Me.TextBox9 = Sheets("CDepo").Cells(i, "C").Value
        Me.ComboBox2 = Sheets("CDepo").Cells(i, "B").Value
        Me.TextBox6 = Sheets("CDepo").Cells(i, "I").Value
        Me.TextBox13 = Sheets("CDepo").Cells(i, "J").Value
        Me.TextBox15 = Sheets("CDepo").Cells(i, "P").Value
        Me.TextBox8 = Sheets("CDepo").Cells(i, "D").Value
        Me.TextBox16 = Sheets("CDepo").Cells(i, "Q").Value
    End If
Next

End Sub
Private Sub CommandButton6_Click()

If UserForm11.ComboBox4 = "TesellumFisi" Then

    If TextBox2.Text <> "" Then
        Son_Dolu_Satir = Sheets("TesellumFisi").Range("A65536").End(xlUp).Row

        For i = 23 To Son_Dolu_Satir
            If Sheets("TesellumFisi").Cells(i, 2).Value = TextBox2.Text Then
                Exit Sub
            End If
        Next i
        Bos_Satir = Son_Dolu_Satir + 1
        Sheets("TesellumFisi").Range("A" & Bos_Satir).Value = Application.WorksheetFunction.Max(Sheets("TesellumFisi").Range("A:A")) + 1
        Sheets("TesellumFisi").Range("B" & Bos_Satir).Value = TextBox2.Text
        Sheets("TesellumFisi").Range("C" & Bos_Satir).Value = TextBox13.Text
        Sheets("TesellumFisi").Range("E" & Bos_Satir).Value = TextBox9.Text
        Sheets("TesellumFisi").Range("I" & Bos_Satir).Value = TextBox4.Text
        Sheets("TesellumFisi").Range("J" & Bos_Satir).Value = TextBox6.Text
        Sheets("TesellumFisi").Range("O13").Value = UserForm11.ComboBox1.Text
        Sheets("TesellumFisi").Range("H" & Bos_Satir).Value = UserForm11.ComboBox2.Text
        Sheets("TesellumFisi").Range("G" & Bos_Satir).Value = TextBox8.Text
    End If
End If

Dim TC As Control
For Each TC In Controls
    If TypeName(TC) = "TextBox" Or TypeName(TC) = "ComboBox" Then
        TC.Value = ""
    End If
Next TC
Set TC = Nothing

'--
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)

End Sub
Lst1代码:

Private Sub TextBox17_Change()

Dim i As Long
Me.TextBox17.Text = StrConv(Me.TextBox17.Text, 1)
Me.ListBox4.Clear
For i = 2 To Application.WorksheetFunction.CountA(Sayfa2.Range("C:C"))
    a = Len(Me.TextBox17.Text)
    If Left(Sayfa2.Cells(i, 3).Value, a) = Left(Me.TextBox17.Text, a) Then
        Me.ListBox4.AddItem Sayfa2.Cells(i, 3).Value
        Me.ListBox4.List(ListBox4.ListCount - 1, 3) = Sayfa2.Cells(i, 10).Value
    End If
Next i

End Sub
Private Sub ListBox4_Click()

Dim i As Long, lastrow As Long
lastrow = Sheets("CDepo").Range("C" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow
    If CStr(Sheets("CDepo").Cells(i, "C").Value) = (Me.ListBox4.Value) Then
        Me.TextBox2 = Sheets("CDepo").Cells(i, "A").Value
        Me.TextBox11 = Sheets("CDepo").Cells(i, "H").Value
        Me.TextBox9 = Sheets("CDepo").Cells(i, "C").Value
        Me.ComboBox2 = Sheets("CDepo").Cells(i, "B").Value
        Me.TextBox6 = Sheets("CDepo").Cells(i, "I").Value
        Me.TextBox13 = Sheets("CDepo").Cells(i, "J").Value
        Me.TextBox15 = Sheets("CDepo").Cells(i, "P").Value
        Me.TextBox8 = Sheets("CDepo").Cells(i, "D").Value
        Me.TextBox16 = Sheets("CDepo").Cells(i, "Q").Value
    End If
Next

End Sub
Private Sub CommandButton6_Click()

If UserForm11.ComboBox4 = "TesellumFisi" Then

    If TextBox2.Text <> "" Then
        Son_Dolu_Satir = Sheets("TesellumFisi").Range("A65536").End(xlUp).Row

        For i = 23 To Son_Dolu_Satir
            If Sheets("TesellumFisi").Cells(i, 2).Value = TextBox2.Text Then
                Exit Sub
            End If
        Next i
        Bos_Satir = Son_Dolu_Satir + 1
        Sheets("TesellumFisi").Range("A" & Bos_Satir).Value = Application.WorksheetFunction.Max(Sheets("TesellumFisi").Range("A:A")) + 1
        Sheets("TesellumFisi").Range("B" & Bos_Satir).Value = TextBox2.Text
        Sheets("TesellumFisi").Range("C" & Bos_Satir).Value = TextBox13.Text
        Sheets("TesellumFisi").Range("E" & Bos_Satir).Value = TextBox9.Text
        Sheets("TesellumFisi").Range("I" & Bos_Satir).Value = TextBox4.Text
        Sheets("TesellumFisi").Range("J" & Bos_Satir).Value = TextBox6.Text
        Sheets("TesellumFisi").Range("O13").Value = UserForm11.ComboBox1.Text
        Sheets("TesellumFisi").Range("H" & Bos_Satir).Value = UserForm11.ComboBox2.Text
        Sheets("TesellumFisi").Range("G" & Bos_Satir).Value = TextBox8.Text
    End If
End If

Dim TC As Control
For Each TC In Controls
    If TypeName(TC) = "TextBox" Or TypeName(TC) = "ComboBox" Then
        TC.Value = ""
    End If
Next TC
Set TC = Nothing

'--
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)

End Sub
输入命令按钮:

Private Sub TextBox17_Change()

Dim i As Long
Me.TextBox17.Text = StrConv(Me.TextBox17.Text, 1)
Me.ListBox4.Clear
For i = 2 To Application.WorksheetFunction.CountA(Sayfa2.Range("C:C"))
    a = Len(Me.TextBox17.Text)
    If Left(Sayfa2.Cells(i, 3).Value, a) = Left(Me.TextBox17.Text, a) Then
        Me.ListBox4.AddItem Sayfa2.Cells(i, 3).Value
        Me.ListBox4.List(ListBox4.ListCount - 1, 3) = Sayfa2.Cells(i, 10).Value
    End If
Next i

End Sub
Private Sub ListBox4_Click()

Dim i As Long, lastrow As Long
lastrow = Sheets("CDepo").Range("C" & Rows.Count).End(xlUp).Row
For i = 2 To lastrow
    If CStr(Sheets("CDepo").Cells(i, "C").Value) = (Me.ListBox4.Value) Then
        Me.TextBox2 = Sheets("CDepo").Cells(i, "A").Value
        Me.TextBox11 = Sheets("CDepo").Cells(i, "H").Value
        Me.TextBox9 = Sheets("CDepo").Cells(i, "C").Value
        Me.ComboBox2 = Sheets("CDepo").Cells(i, "B").Value
        Me.TextBox6 = Sheets("CDepo").Cells(i, "I").Value
        Me.TextBox13 = Sheets("CDepo").Cells(i, "J").Value
        Me.TextBox15 = Sheets("CDepo").Cells(i, "P").Value
        Me.TextBox8 = Sheets("CDepo").Cells(i, "D").Value
        Me.TextBox16 = Sheets("CDepo").Cells(i, "Q").Value
    End If
Next

End Sub
Private Sub CommandButton6_Click()

If UserForm11.ComboBox4 = "TesellumFisi" Then

    If TextBox2.Text <> "" Then
        Son_Dolu_Satir = Sheets("TesellumFisi").Range("A65536").End(xlUp).Row

        For i = 23 To Son_Dolu_Satir
            If Sheets("TesellumFisi").Cells(i, 2).Value = TextBox2.Text Then
                Exit Sub
            End If
        Next i
        Bos_Satir = Son_Dolu_Satir + 1
        Sheets("TesellumFisi").Range("A" & Bos_Satir).Value = Application.WorksheetFunction.Max(Sheets("TesellumFisi").Range("A:A")) + 1
        Sheets("TesellumFisi").Range("B" & Bos_Satir).Value = TextBox2.Text
        Sheets("TesellumFisi").Range("C" & Bos_Satir).Value = TextBox13.Text
        Sheets("TesellumFisi").Range("E" & Bos_Satir).Value = TextBox9.Text
        Sheets("TesellumFisi").Range("I" & Bos_Satir).Value = TextBox4.Text
        Sheets("TesellumFisi").Range("J" & Bos_Satir).Value = TextBox6.Text
        Sheets("TesellumFisi").Range("O13").Value = UserForm11.ComboBox1.Text
        Sheets("TesellumFisi").Range("H" & Bos_Satir).Value = UserForm11.ComboBox2.Text
        Sheets("TesellumFisi").Range("G" & Bos_Satir).Value = TextBox8.Text
    End If
End If

Dim TC As Control
For Each TC In Controls
    If TypeName(TC) = "TextBox" Or TypeName(TC) = "ComboBox" Then
        TC.Value = ""
    End If
Next TC
Set TC = Nothing

'--
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)

End Sub
Private子命令按钮6_单击()
如果UserForm11.ComboBox4=“TesellumFisi”,则
如果是TextBox2.Text“”,则
Son_Dolu_Satir=板材(“TesellumFisi”)。范围(“A65536”)。结束(xlUp)。行
对于Son_Dolu_Satir,i=23
如果表(“TesellumFisi”).Cells(i,2).Value=TextBox2.Text,则
出口接头
如果结束
接下来我
Bos_Satir=Son_Dolu_Satir+1
图纸(“TesellumFisi”).Range(“A”和Bos_-Satir).Value=Application.WorksheetFunction.Max(图纸(“TesellumFisi”).Range(“A:A”)+1
工作表(“TesellumFisi”)。范围(“B”和Bos_Satir)。值=TextBox2.Text
工作表(“TesellumFisi”)。范围(“C”和Bos_Satir)。值=文本框13.Text
工作表(“TesellumFisi”)。范围(“E”和Bos_Satir)。值=文本框9.Text
工作表(“TesellumFisi”)。范围(“I”和Bos_Satir)。值=TextBox4.Text
工作表(“TesellumFisi”)。范围(“J”和Bos_Satir)。值=文本框6.Text
工作表(“TesellumFisi”).Range(“O13”).Value=UserForm11.ComboBox1.Text
工作表(“TesellumFisi”)。范围(“H”和Bos_-Satir)。值=UserForm11.ComboBox2.Text
表(“TesellumFisi”)。范围(“G”和Bos_Satir)。值=文本框8.Text
如果结束
如果结束
Dim TC作为控制
对于控件中的每个TC
如果TypeName(TC)=“TextBox”或TypeName(TC)=“ComboBox”,则
TC.Value=“”
如果结束
下一个TC
设置TC=无
'--
TextBox2.SetFocus
TextBox2.SelStart=1
TextBox2.SelLength=Len(TextBox2.Text)
端接头

跳过文本1,但清除控件循环中需要条件的其余文本框

Dim TC As Control
    For Each TC In Controls
        If TypeName(TC) = "TextBox" Or TypeName(TC) = "ComboBox" Then
            If Not TC.name = "TextBox1" then 'Assuming this is the right name
                TC.Value = ""
            end if
        End If
    Next TC
    Set TC = Nothing