【问题标题】:Excel VBA to Open Multiple Word 2010 Documents and Determine if Checkboxes are CheckedExcel VBA 打开多个 Word 2010 文档并确定是否选中了复选框
【发布时间】:2014-02-10 00:05:39
【问题描述】:

我正在尝试创建一个报告,该报告分析文件夹中的多个 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

【问题讨论】:

    标签: excel vba checkbox ms-word


    【解决方案1】:

    尝试使用:

    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
    

    【讨论】:

    • 删除集时仍然收到“424”运行时错误。消息是“需要对象”
    • 几秒钟前我已经更新了我的 asnwer..试试这个PassValue = ActiveDocument.FormFields("PassCheckBox").CheckBox.Value
    • 调试时仍然出现相同的 424 运行时错误,PassValue 行突出显示。
    • 相同的消息,但现在在“对于 ActiveDocument 中的每个 c... 行。我想知道他们打开 word 文档的方式是否会影响 VBA 解释哪个文档处于活动状态。
    • 现在试试,顺便说一句你用的是什么word版本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    相关资源
    最近更新 更多