Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA Excel中,根据某些条件从userform传递值的代码_Excel_Vba - Fatal编程技术网

在VBA Excel中,根据某些条件从userform传递值的代码

在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

我需要一些vba代码的帮助

数据在同一工作表上

我创建了一个userform,其中包含一个组合框和一个文本框。组合框中的值是存储在sheet1.range(“A1:A300”)中的名称。用户在文本框中输入电话号码

我很难创建一个代码,在这个代码中,我可以传递用户在组合框中选择的名称旁边的textbox值。文本框值将存储在B列中


谢谢你的帮助。

也许是这样的

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)
to
Set 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)
to
Set c=Rng.Find(ListBox1.Value,lookat:=xlother,LookIn:=xlValues)