我如何在一个“任务”中定义两个任务;如果-使用VBA的公式?
我目前正在创建一个供用户填写的订单 为此,我在Word文档中创建了几个表单字段 为了确保用户填写适当的字段,我创建了一个宏。我成功地创建了一个宏,它将强制用户在弹出框中输入一些内容(这是第一个“do”-字符串) 但是,我希望视图跳转到给定字段,这就是我在第二个“do”-字符串中尝试执行的操作 代码如下:我如何在一个“任务”中定义两个任务;如果-使用VBA的公式?,vba,loops,if-statement,ms-word,form-fields,Vba,Loops,If Statement,Ms Word,Form Fields,我目前正在创建一个供用户填写的订单 为此,我在Word文档中创建了几个表单字段 为了确保用户填写适当的字段,我创建了一个宏。我成功地创建了一个宏,它将强制用户在弹出框中输入一些内容(这是第一个“do”-字符串) 但是,我希望视图跳转到给定字段,这就是我在第二个“do”-字符串中尝试执行的操作 代码如下: Sub mustFill() Dim fieldvars(1 To 12) As String Dim labels(1 To 12) As String field
Sub mustFill()
Dim fieldvars(1 To 12) As String
Dim labels(1 To 12) As String
fieldvars(1) = "siteName"
fieldvars(2) = "currentDate"
fieldvars(3) = "deliveryDate"
fieldvars(4) = "pcpName"
fieldvars(5) = "pcpMail"
fieldvars(6) = "pcpPhone"
fieldvars(7) = "numberOfTurbines"
fieldvars(8) = "siteAddress"
fieldvars(9) = "emergencyPhone"
fieldvars(10) = "hubHeight"
fieldvars(11) = "towerSections"
fieldvars(12) = "coordinateSystem"
labels(1) = "Site name"
labels(2) = "Current date"
labels(3) = "Requested delivery date"
labels(4) = "Project contact person, Name"
labels(5) = "Project contact person, E-mail"
labels(6) = "Project contact person, Phone no."
labels(7) = "Number of turbines"
labels(8) = "Site address"
labels(9) = "Emergency phone no."
labels(10) = "Hub height"
labels(11) = "Number of tower sections"
labels(12) = "Turbine coordinate system, datum and zone"
For i = 1 To 12
If ActiveDocument.FormFields(fieldvars(i)).Result = "" Then
Do
sInFld = InputBox("This field: " & labels(i) & " is mandatory. Please fill in below.")
Do
ActiveDocument.FormFields(fieldvars(i)).SetFocus
Loop While sInFld = ""
Loop While sInFld = ""
ActiveDocument.FormFields(fieldvars(i)).Result = sInFld
End If
Next i
End Sub
是我做错的字符串,还是“If”-公式中的多个“Do”-字符串有问题
提前非常感谢
/thormannFormField对象没有SetFocus方法。我很惊讶您没有收到编译时错误消息。(或者您和您只是没有提到它-您应该始终提到错误消息及其发生的代码行!) 可以使用FormField对象的Select方法将光标放置在表单字段中:
ActiveDocument.FormFields(fieldvars(i)).Select
除此之外,我同意布莱克伯德的说法,即第二个“做”似乎没有必要……为什么需要第二个“做”?好的。那么我也不需要第二个“循环”,而“我”是吗?是的,这是正确的