繁体   English   中英

Excel VBA打开多个Word 2010文档并确定是否已选中复选框

[英]Excel VBA to Open Multiple Word 2010 Documents and Determine if Checkboxes are Checked

我正在尝试创建一个报告,该报告分析文件夹中的多个Word文档并分析该文档中的复选框,以确定一组测试是否通过或失败。 我有遍历文件夹中所有文档的代码,但是我很难确定如何确定是否选中了这些框。

我要评估的第一个复选框被标记为“ PassCheckBox”。 我已经找到了几篇有关如何执行此操作的语法的文章,但似乎没有一篇与我遍历word文件的方式一起工作。 我当前的代码在尝试运行时给我“对象是必需的”。

这是我当前的代码:

Sub ParseTestFiles()
  Dim FSO As Object
  Dim fPath As String
  Dim myFolder, myFile
  Dim wdApp As Object
  Dim PassValue As Boolean

  fPath = ActiveWorkbook.Path
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set myFolder = FSO.GetFolder(fPath).Files
  For Each myFile In myFolder
    If LCase(myFile) Like "*.doc" _
    Or LCase(myFile) Like "*.docx" Or LCase(myFile) Like "*.docm" Then

      On Error Resume Next
      Set wdApp = GetObject(, "Word.Application")
      If Err.Number <> 0 Then 'Word not yet running
        Set wdApp = CreateObject("Word.Application")
      End If

      On Error GoTo 0
      wdApp.Documents.Open CStr(myFile)
      wdApp.Visible = True
      ' Here is where I'm having an issue
      PassValue = ActiveDocument.FormFields("PassCheckBox").Checked

      Set wdApp = Nothing
    End If 'LCase
  Next myFile

End Sub

尝试使用:

Dim c, wdDoc
Set wdDoc = wdApp.Documents.Open(CStr(myFile))
wdApp.Visible = True
For Each c In wdDoc.ContentControls
    If c.Title = "PassCheckBox" Then
        PassValue = c.Checked
        Exit For
    End If
Next

代替

wdApp.Documents.Open CStr(myFile)
wdApp.Visible = True

PassValue = ActiveDocument.FormFields("PassCheckBox").Checked

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM