我试图重用代码来搜索工作表中的值,但是我似乎做错了什么。我有一个带有名为“ 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。)。
因此,如果我将“ 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” ...
我试图模拟您的应用程序。 (我无法发表评论,所以我正在写一个答案)。下面的代码运行良好,至少在我的计算机上没有任何问题。我还没有发现什么大问题。我在标签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