文本框的值被重置

问题描述 投票:0回答:1

我试图重用代码来搜索工作表中的值,但是我似乎做错了什么。我有一个带有名为“ KD_ID”的文本框的用户窗体,我需要获取已放入其中并在Excel中的工作表(“ Stammdaten”)上进行搜索的数据,然后将其旁边的一些单元格合并为一个字符串。 (KD_RNG->全局变量)

我使用此代码:

 Private Sub KD_Search_Click()
        Dim KD_Search As String

       KD_Search = Packzettelinfo.KD_ID

        Set KD_RNG = ThisWorkbook.Sheets("Stammdaten").Range("A:A").Find(KD_Search, , xlValues, xlWhole)
        If Not KD_RNG Is Nothing Then
    Customer_Combination.Value = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Value




        Else
        MsgBox "Kundennummer konnte nicht gefunden werden (Fehler #002)"
        Packzettelinfo.KD_ID.SetFocus
        Exit Sub
        End If

    End Sub

事实是,我在另一个子目录中搜索“ PZ_ID”(下面的屏幕截图中的标签PZ-Nr。)并在下一次搜索之前预填充文本框“ KD_ID”(标签KD-Nr。)。

This shows the problem

因此,如果我将“ 12345”更改为“ 23456”,

 Customer_Combination.Value = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Value

将不返回任何内容,并且KD_ID重置为“ 12345” ...

excel vba textbox
1个回答
0
投票

我试图模拟您的应用程序。 (我无法发表评论,所以我正在写一个答案)。下面的代码运行良好,至少在我的计算机上没有任何问题。我还没有发现什么大问题。我在标签Me.Customer_Combination.Caption中添加了另一行,因为您并未将其用于输入(据我所知),而是仅显示结果。注意:按文本框使用value属性的文本是相同的。我也注释了两行,因为它们不是必需的。

Dim KD_RNG As Range
Private Sub KD_Search_Click()
    Dim KD_Search As String
    KD_Search = Me.KD_ID.Text
    Set KD_RNG = ThisWorkbook.Sheets("Stammdaten").Range("A:A").Find(KD_Search, , xlValues, xlWhole)
    If Not KD_RNG Is Nothing Then
        Me.Customer_Combination.Caption = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Text
        Me.Customer_CombinationTextBox.Text = KD_RNG.Offset(0, 1).Value & vbNewLine & KD_RNG.Offset(0, 2).Value & KD_RNG.Offset(0, 3).Value & vbNewLine & KD_RNG.Offset(0, 5).Value & vbNewLine & KD_RNG.Offset(0, 6).Value & KD_RNG.Offset(0, 7).Text
    Else
        MsgBox "Kundennummer konnte nicht gefunden werden (Fehler #002)"
        'Me.KD_ID.SetFocus
        'Exit Sub
    End If
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.