小编Mar*_*niz的帖子

如何迭代多个 Word 实例(使用 AccessibleObjectFromWindow)

我需要遍历所有 Word 实例,无论是由用户、自动化、zumbis 等打开的。

我将描述到目前为止的所有步骤:我看到并实施了我在这里得到的解决方案;

       Do
            For Each objWordDocument In objWordApplication.Documents
               OpenDocs(iContadorDocs - 1) = objWordDocument.Name
               OpenDocs(iContadorDocs) = objWordDocument.path
               iContadorDocs = iContadorDocs + 2
               ReDim Preserve OpenDocs(iContadorDocs)
            Next objWordDocument
            iWordInstances = iWordInstances + 1
            objWordApplication.Quit False
            Set objWordApplication = Nothing
            Set objWordApplication = GetObject(, "Word.Application")
       Loop While Not objWordApplication Is Nothing
Run Code Online (Sandbox Code Playgroud)

它有效,但是:

  1. 为了迭代所有单词实例,我们必须 GetObject 并关闭它,循环直到没有更多打开的实例,然后重新打开我关心的所有内容

    • 这需要很多时间和 R/W 周期和磁盘访问

    • 并且当然必须在 Word 之外完成,因为它可能会先关闭运行实例的代码,或者在循环中间...

所以,经过一些谷歌搜索,我看到了一些直接访问流程的例子,这里这里是 VB。

我设法获得了所有 Winword.exe 实例的 PID,主要是对VBForums的代码进行了一些修改

仅显示修改后的代码段:

   Do
        If …
Run Code Online (Sandbox Code Playgroud)

iteration vba pid ms-word instance

5
推荐指数
1
解决办法
775
查看次数

如何动态更改xsl:output方法属性值?

我想使用相同的 xslt 并针对不同的输出(即 xml、html、xhtml 和文本)进行测试;当然我正在这样做:

<xsl:output method="xml" indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

或者

<xsl:output method="html" indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

但我想通过一个通知参数动态更改,如果我省略它,则默认为 xml。

我试过这个:

<xsl:param name="outputMethod" select="xml" />  
<xsl:output method="$outputMethod"indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

没有成功,输出是:

 XTSE0020: Invalid value for serialization method: must be
  xml|html|xhtml|text|json|adaptive, or a QName in '{uri}local' form
Run Code Online (Sandbox Code Playgroud)

并尝试了这种更复杂的方式,我知道:

<xsl:variable name="thisDocument" select="document('')" /> 
<xsl:param name="outputMethod" select="xml" />  
<xsl:variable name="myOutputMethod" select="$outputMethod"/>
<xsl:output method="$thisDocument/xsl:stylesheet/myOutputMethod" indent="yes"/>
Run Code Online (Sandbox Code Playgroud)

也没有成功,输出是:

Static error at xsl:output on line 10 column 85 of CopyingNodes.xslt:
  XTSE0020: Both the prefix {$thisDocument/xsl} and the local part
  {stylesheet/myOutputMethod} are invalid
Errors were reported during …
Run Code Online (Sandbox Code Playgroud)

xml xslt

1
推荐指数
1
解决办法
715
查看次数

标签 统计

instance ×1

iteration ×1

ms-word ×1

pid ×1

vba ×1

xml ×1

xslt ×1