以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这种VBA代码如何Foxtable在MSWord中体现?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123903)

--  作者:wcs
--  发布时间:2018/8/26 16:51:00
--  这种VBA代码如何Foxtable在MSWord中体现?
这段代码的意思是要在WORD中的选定区域删除指定的字符:
If qwstr <> "" Then \'删除表中的指定字符
    arr = Split(qwstr, ",")
    With _app.Selection
      For i = 0 To arr.Length - 1
            .Find.Text = arr(i)
            .Find.Replacement.Text = ""
            .Find.Execute Replace:=wdReplaceAll
      output.show(arr(i))
      Next
    End With
End If


但是执行时有这样的提示:
编译错误:方法参数必须在括号内
 .Find.Execute Replace:=wdReplaceAll



这个代码的写法是VBA中的写法,我不清楚这样的情况在Foxtable中该如何写?


下述是VBA官方帮助文件的内容:

Replacement 对象代表查找和替换操作的替换条件。Replacement 对象的属性和方法对应于“查找和替换”对话框中的选项(单击“编辑”菜单中的“查找”或“替换”命令可显示该对话框)。

可通过 Find 对象使用 Replacement 对象。下列示例将所有单词“hi”替换为“hello”。由于 Find 对象是通过 Selection 对象访问的,所以当找到搜索条件时,会更改所选内容。

With Selection.Find
    .ClearFormatting
    .Text = "hi"
    .Replacement.ClearFormatting
    .Replacement.Text = "hello"
    .Execute Replace:=wdReplaceAll, Forward:=True, _
        Wrap:=wdFindContinue
End With


Replace    Variant 类型,可选。指定执行替换的个数:一个、全部或者不替换。可取下列 WdReplace 常量之一。

图片点击可在新窗口打开查看
图片点击可在新窗口打开查看

--  作者:wcs
--  发布时间:2018/8/26 22:59:00
--  
我看了,这是一个WORD枚举常量   wdReplaceAll
我查了下官方帮助,是这样的:

<!--[if gte vml 1]> Bitmap <![endif]--><!--[if !vml]-->显示<!--[endif]-->
WdReplace
常量
wdReplaceAll 2
wdReplaceNone 0
wdReplaceOne 1

不知在Foxtable中如何引用这样的枚举常量

--  作者:有点甜
--  发布时间:2018/8/26 23:15:00
--  

参考

 

Dim app As New MSWord.Application
try
    Dim fileName = "d:\\test.doc"
    Dim doc = app.Documents.Open(fileName)
    app.Selection.Find.Text = "[第一列]"
    app.Selection.Find.Replacement.ClearFormatting()
    app.Selection.Find.Replacement.Text = "123456789"
    app.Selection.Find.Execute(Replace:=MSWord.WdReplace.wdReplaceAll)
    app.visible = True
catch ex As exception
    msgbox(ex.message)
    app.Quit
finally
   
End try


--  作者:wcs
--  发布时间:2018/8/26 23:35:00
--  
经测试是有效的,十分感谢!

官方帮助文件中有3000个WORD枚举!

这样,我可以实现众多来源于枚举值的WORD自动排版!
[此贴子已经被作者于2018/8/26 23:36:12编辑过]