Excel VBA打开多个Word 2010文档,并确定是否选中复选框 [英] Excel VBA to Open Multiple Word 2010 Documents and Determine if Checkboxes are Checked

查看:492
本文介绍了Excel VBA打开多个Word 2010文档,并确定是否选中复选框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm trying to create a report that analyzes multiple word documents in a folder and analyzes checkboxes in the document to determine if a set of tests passed or failed. I have code that loops through all documents in a folder, but I'm having a hard time determining how to determine if the boxes are checked.

我试图评估的第一个复选框被标记为PassCheckBox。我发现几个文章的语法如何做到这一点,但似乎没有工作与我迭代的文件文件的方式。

The first checkbox I'm trying to evaluate is tagged "PassCheckBox". I've found several articles with syntax on how to do this, but none seem to work with the way I'm iterating through the word files. My current code give me "Object is Required" when I try to run.

这是我目前的代码:

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

这篇关于Excel VBA打开多个Word 2010文档,并确定是否选中复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆