在VBA Excel中,根据某些条件从userform传递值的代码
我需要一些vba代码的帮助 数据在同一工作表上 我创建了一个userform,其中包含一个组合框和一个文本框。组合框中的值是存储在sheet1.range(“A1:A300”)中的名称。用户在文本框中输入电话号码 我很难创建一个代码,在这个代码中,我可以传递用户在组合框中选择的名称旁边的textbox值。文本框值将存储在B列中在VBA Excel中,根据某些条件从userform传递值的代码,excel,vba,Excel,Vba,我需要一些vba代码的帮助 数据在同一工作表上 我创建了一个userform,其中包含一个组合框和一个文本框。组合框中的值是存储在sheet1.range(“A1:A300”)中的名称。用户在文本框中输入电话号码 我很难创建一个代码,在这个代码中,我可以传递用户在组合框中选择的名称旁边的textbox值。文本框值将存储在B列中 谢谢你的帮助。也许是这样的 Private Sub TextBox1_Change() Set Rng = Range("A1:A300") Set c = Rng.Fi
谢谢你的帮助。也许是这样的
Private Sub TextBox1_Change()
Set Rng = Range("A1:A300")
Set c = Rng.Find(ListBox1.Value, lookat:=xlWhole)
c.Offset(0, 1).Value = TextBox1.Value
End Sub
Private Sub UserForm_Initialize()
Set Rng = Range("A1:A300")
ListBox1.List = Application.Transpose(Rng)
End Sub
也许是这样的
Private Sub TextBox1_Change()
Set Rng = Range("A1:A300")
Set c = Rng.Find(ListBox1.Value, lookat:=xlWhole)
c.Offset(0, 1).Value = TextBox1.Value
End Sub
Private Sub UserForm_Initialize()
Set Rng = Range("A1:A300")
ListBox1.List = Application.Transpose(Rng)
End Sub
Range.Find
或Application.Match
应该非常有用。类似于Sheet1.Range(“A1:A300”).Find(yourcombobox.value)。偏移量(,1)。value=yourtextbox.value
。虽然可能很好地证明了发现了什么东西,并且有电话号码,等等。谢谢你的回复。我尝试添加代码“Sheet1.Range(“A1:A300”).Find(yourcombobox.value).Offset(,1).value=yourtextbox.value”,但出现错误91“objectvariable”。当然,我输入了组合框和文本框的确切名称。有什么想法吗?Range.Find
或Application.Match
应该非常有用。类似于Sheet1.Range(“A1:A300”).Find(yourcombobox.value)。Offset(,1)。value=yourtextbox.value
。虽然可能很好地证明了发现了什么东西,并且有电话号码,等等。谢谢你的回复。我尝试添加代码“Sheet1.Range(“A1:A300”).Find(yourcombobox.value).Offset(,1).value=yourtextbox.value”,但出现错误91“objectvariable”。当然,我输入了组合框和文本框的确切名称。有什么想法吗?再次谢谢。我仍然收到错误91,代码“c.Offset(0,1)。Value=TextBox1.Value”突出显示。@RED,请告诉我您的文本框的名称是什么?您的列表框的名称是什么?谢谢您的帮助。我弄明白了我为什么会出错。范围(a1:a300)的内容实际上是公式,即两个单元格的串联。当我将公式更改为绝对值时,错误消失了。再次感谢。现在我已经计算好了,我想知道是否可以用一个问题来打扰您:有没有办法在代码运行时将公式临时更改为绝对值,然后在代码执行后将内容还原为公式?请尝试更改此Set c=Rng.Find(ListBox1.Value,lookat:=xlother)
toSet c=Rng.Find(ListBox1.Value,lookat:=xlother,LookIn:=xlValues)
再次感谢。我仍然收到错误91,代码“c.Offset(0,1)。Value=TextBox1.Value”突出显示。@RED,请告诉我您的文本框的名称是什么?您的列表框的名称是什么?谢谢您的帮助。我弄明白了我为什么会出错。范围(a1:a300)的内容实际上是公式,即两个单元格的串联。当我将公式更改为绝对值时,错误消失了。再次感谢。现在我已经计算好了,我想知道是否可以用一个问题来打扰您:有没有办法在代码运行时将公式临时更改为绝对值,然后在代码执行后将内容还原为公式?请尝试更改此Set c=Rng.Find(ListBox1.Value,lookat:=xlother)
toSet c=Rng.Find(ListBox1.Value,lookat:=xlother,LookIn:=xlValues)