这个让我很疑惑。这似乎是一项简单的任务,但解决方案让我望而却步: - 如何在用于邮件合并的 Word 模板中对合并字段进行子串化?
例如,我有类似的东西{MERGEFIELD barcodevalue},我想提取前 6 个字符,因为它同时是其他东西的标识符。
我可以找到有关如何删除数字字段中给定位置左侧(\x)而不是右侧的字符的信息。
我有个简历,想在开业时自动更新我的年龄.那么,我应该在MS Word字段中插入什么公式?
就像是:
{= {DATE} - {"01/01/1983"} } 当前,如果我创建带有字段的Word文档模板,然后使用C#填充它们,则与此类似。
object missing = Type.Missing;
Word.Application app = new Word.Application();
Word.Document doc = app.Documents.Open("file.doc", ref missing, true);
Word.FormFields fields = doc.FormFields;
fields[2].Result = "foo"
fields[3].Result = "bar"
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来引用这些字段?
我注意到在创建模板时,我可以向该字段添加标题和标签,但是我还没有找到引用这些属性的方法。能够命名字段并直接引用它们,而不是仅仅计算并弄清楚我所在的字段,这将是很好的。
我正在根据模板分段构建一个大型文档。#OVERALLPAGENUMBER#每个模板的页脚中都有一个关键字,我以编程方式将其替换为字段(使用 Excel VBA)。
如果我需要的只是该文档的页码,那么以下内容就足够了:
Dim storyRange As Object 'Word.Range
For Each storyRange In oDoc.StoryRanges
Do
With storyRange.Find
.Text = "#OVERALLPAGENUMBER#"
.Wrap = 1 'wdFindContinue
.Execute
While .found
storyRange.Fields.Add Range:=storyRange, Type:=-1, Text:="PAGE", PreserveFormatting:=True
.Execute
Wend
End With
On Error Resume Next
Set storyRange = storyRange.NextStoryRange
On Error GoTo 0
Loop While Not storyRange Is Nothing
Next
Run Code Online (Sandbox Code Playgroud)
我已经测试了这段代码,它成功地将页码放入页脚中。然而,我想要的是一个嵌套(公式)字段,它将固定数字添加到页码,以便我可以显示多个文档的页数。我的解决方案,如果我手动执行(使用 Ctrl+F9),给出的字段代码如下所示:
{ = 5 + { PAGE } }
Run Code Online (Sandbox Code Playgroud)
并正确生成第 1 页上的“6”、第 2 页上的“7”等......
不管我怎么尝试,我都无法使用 VBA 复制这种字段嵌套。(宏记录器在这里没用)。有人能找到以编程方式创建这些字段的方法吗?
解决方案
我的问题是,拥有PreserveFormatting:=True阻碍了我将一个字段嵌套在另一个字段中的尝试。现在,以下简单的解决方案有效:
With …Run Code Online (Sandbox Code Playgroud) 我想将 JavaScript API 中的合并字段 ( <<xyz>>) 插入到单词表中。但是,我无法找到 Office Word 加载项的 JavaScript API。
我想学习如何在Word 2003文档中显示当月之前的月份名称.我已经反复尝试按照我在下面链接中找到的说明进行操作,但无论我尝试什么,我都会遇到一些错误,一些关于我不理解的语法或图片切换.我试过搜索,我想我只是不知道如何将代码实际放入MS Word.有人愿意帮我从您的论坛中获取此代码并将其输入我的文档吗?
谢谢!
ms-word ×6
word-field ×6
fieldcodes ×3
c# ×1
date ×1
excel ×1
office-js ×1
vba ×1
word-addins ×1