【发布时间】:2020-02-13 09:41:33
【问题描述】:
我正在尝试编写一个用户表单,如果按下 cmdbuton,用户表单将评估数据在两个文本框中的哪一个,并查看位置(第一个文本框)或找到数据的名称(第二个文本框)。
我在分析文本框名称时遇到问题。我想找到名称,获取其位置并将该行中的所有数据加载到另一个用户窗体中。问题是我不知道如何从找到单词时得到的 .address 中删除数字。
Private Sub CommandButton2_Click()
If Not TextBox1.value = "" And TextBox2.value = "" Then
Sheet1.Cells(1, 15) = TextBox1.value
Unload Me
OpisVentila.Show
ElseIf TextBox1.value = "" And Not TextBox2.value = "" Then
Dim y As Range
Dim x As String
Dim z As String
Dim s As String
x = TextBox2.Text
Set y = Sheet1.Range("A:A").Find(x)
z = y.Address(0, 0)
s = StrConv(z, vbUnicode)
s = Split(Left(s, Len(s) - 1, vbNullChar))
Sheet1.Cells(1, 15) = s
Unload Me
PromjenaVentila.Show
ElseIf Not TextBox1.value = "" And Not TextBox2.value = "" Then
Msgbox "Please enter one way to find the desired location"
TextBox1 = ""
TextBox2 = ""
Else
Msgbox "You didn't chose any way to find the desired location"
End If
End Sub
【问题讨论】:
-
所以从 A4 你想要 A?试试
z = y.Address(1,1)和split(z, "$")(1)。如果您想要该号码,请改用(2)。并检查y是否首先找到了一些东西。 -
在 textbox1 中他们写“5”,例如,如果他们的数据在第 5 行?如果他们不知道该行,但知道他们的数据称为“Puma”,那么他们应该在 textbox2 中输入它吗?如果您只是想找到其中包含 puma 的行,请使用
GoodVariableName = application.match(textbox2.value, sheet(1).Range("A:A"), 0)考虑使用错误捕获器(application.iferror效果很好)。或者您可以只执行 `Sheet1.Range("A:A").Find(x).row" 而不设置 y 成为 A 列中所需的行?
标签: excel vba string numbers userform