我有一个表格,我用2个文本输入框和excel中的提交按钮创建。
我需要基本上将用户输入的数据输入到我的2个表单字段中,然后将其放入excel中的单元格中。
这是我的代码,但由于某种原因,即使我设置了我的变量,我也会收到一个Object required错误。
Private Sub CommandButton1_Click()
Dim startPoint As String, endPoint As String
Set startPoint = ActiveDocument.FormFields("TextBox1").Result
If startPoint = "" Then Exit Sub
Worksheets(1).Range("A1").value = startPoint
Set endPoint = ActiveDocument.FormFields("TextBox2").Result
If endPoint1 = "" Then Exit Sub
Worksheets(1).Range("A4").value = endPoint
m1 = Worksheets(1).Range("D4").value
km1 = m1 / 1000
MsgBox "Your starting point is " & startPoint & vbCrLf _
& vbCrLf & "It is " & m1 & "m" & " (" & km1 & "km) from " & endPoint
End Sub
答案 0 :(得分:1)
考虑这段代码(假设您的表单是UserForm1):
startPoint = UserForm1.TextBox1.Text
If startPoint = "" Then Exit Sub
Worksheets(1).Range("A1").Value = startPoint
endPoint = UserForm1.TextBox2.Text
If endPoint = "" Then Exit Sub
Worksheets(1).Range("A4").Value = endPoint
答案 1 :(得分:1)
您只能使用Set
将Object
传递给不包含实际值或结果的变量。
示例:
Set startpoint = Me.Textbox1.Value
Range("A1").Value = startpoint
这将为您提供所需的对象错误,因为Me.Texbox1.Value
未引用有效的object
而是Value
。
正确的方法:
Set startpoint = Me.Textbox1
Range("A1").Value = startpoint.Value
在上文中,您将Textbox1
对象传递给startpoint
然后将Value
的{{1}}传递到目标范围。
另一种方法是直接将object
传递给变量。
Value
由于您没有传递startpoint = Me.Textbox1.Value
Range("A1").Value = startpoint
而是传递Set
,因此无需使用Object
。
希望这会有所帮助。