标签: word-vba

建立Word字段

除了将文本插入并解析为空白的Word字段之外,有没有什么方法可以用VBA以编程方式将用户定义的字段和字段代码构建到我自己的模板中?此外,有没有办法让这些字段显示在可用字段列表中?

vba ms-word user-defined-fields word-template word-vba

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

用VBA填充Word模板中的表格?

我正在填写一个Word模板,其中包含从用户输入中收集的数据.特别地,选择(可变)数量的文档,并且关于每个文档的信息填充表格的一行.

我已经为模板中的几个项目添加了书签,并成功填写了我的宏标题中的信息,但是我不太确定.我为第一个单元格添加了书签并尝试使用tab(使用Chr(9)),并尝试传递数组.(在模板中,表只有第一行.通常在最后一列之后标记会创建一个额外的行.)

我可以用细胞内容物来回收细胞

   Word.Application.ActiveDocument.Tables(1).Cell(3, 1).Range.Text
Run Code Online (Sandbox Code Playgroud)

但不能写入除第一个之外的任何单元格,我放置了一个书签.

任何人都可以提供填充表格的可能解决方案吗?

templates ms-word word-vba

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

在Word VBA中发送BACKSPACE键击

我在Word VBA中制作了一些代码,最后我需要1个退格键击.这怎么可以实现?

ms-word word-vba

3
推荐指数
2
解决办法
2万
查看次数

如何按位置顺序从Word文档到数组获取所有书签元素的列表:VBA / Word

我想获取我的Word文档中的所有书签,然后将它们推到数组中。书签必须按其在文档中的位置而不是名称进行排序。

例如 这是文档中的书签列表,

[bm_s]  (header)
[bm_h]  (title)
[bm_a]  (footer)
Run Code Online (Sandbox Code Playgroud)

我希望书签保持其顺序,以使数组如下所示,

array {bm_s, bm_h, bm_a, }
Run Code Online (Sandbox Code Playgroud)

例如 看起来应该不会像下面这样

array {bm_a, bm_h, bm_s, }
Run Code Online (Sandbox Code Playgroud)

我从文档工作中获取了所有书签。提取并推入数组时,我会以随机顺序获得所有书签。

vba ms-word word-vba

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

如何将Microsoft Word中当前所选段落的段落编号获取到AppleScript变量中?

这是对原始问题的扩展,当前段落的编号是多少?我如何获得它?,这很好地回答了iWork Pages的问题。http://macscripter.net/viewtopic.php?id=29125

我想在Microsoft Word中做同样的事情。我找到了可以获取段落编号的VBA脚本(请参见下文),但是我不知道VBA脚本的工作原理,因此我被卡住了(也请参见下文)


更新17-05-2013

有两种解决方案。在阅读了VBA并检查了代码之后,我意识到了VBA脚本如何确定段落编号。实际上,这很简单。它设置从字符0到光标位置的范围,然后计算该范围内的段落。

因此,我看到了两种可能的解决方案:

  1. 使用VBA的AppleScript等效项CurPos来创建范围从文档位置0到位置的范围cursor。计算范围内的段落。
  2. 使用VBA脚本将段落编号设置为变量并通过AppleScript访问该变量

我的最终目标是对文档进行遍历,以查找所有表并在其前后插入分节符。

以下VBA脚本提供了一个弹出对话框,其中显示了我需要的数据以及更多信息(段落,绝对行号,相对行号)。也许有人可以帮助我将此脚本的输出设置为我可以通过AppleScript访问的文档变量

Open this Scriplet in your Editor:

get variable value of variable "paragraphNum" of active document
Run Code Online (Sandbox Code Playgroud)

这是VBA脚本:

Option Explicit

Sub WhereAmI()
    MsgBox "Paragraph number: " & GetParNum(Selection.Range) & vbCrLf & _
        "Absolute line number: " & GetAbsoluteLineNum(Selection.Range) & vbCrLf & _
        "Relative line number: " & GetLineNum(Selection.Range)
End Sub


Function GetParNum(r As Range) As Integer
    Dim rParagraphs As Range
    Dim CurPos As Integer

    r.Select …
Run Code Online (Sandbox Code Playgroud)

applescript vba ms-word word-vba

3
推荐指数
1
解决办法
2万
查看次数

“类型”-声明vba中的常量变量

我想像这样在VBA Makro中总结我的Const变量:

Private Type Company
   Public Const CompanyNameColumns As String = "14"
   Public Const CompanyNameStartRow As Integer = 5
Type End
Run Code Online (Sandbox Code Playgroud)

我无法运行此代码。我认为问题在于,无法在类型声明中定义Const。有没有解决办法?

vba const ms-word excel-vba word-vba

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

VBA脚本:查找大写文本并使其变为粗体

我希望有一个可以在WORD 2003上运行的宏代码.我有如下文字:

这是从这里继续的句子的开头.

我想把大写文本加粗:

这是从这里继续的句子的开头.

据我所知,如果粗体文本的文本格式为"AllCaps",但事实并非如此,这将是微不足道的.它是使用大写锁定创建的.

有任何想法吗?我可以了解它,但我无法弄清楚如何在VBA代码中添加复杂的查找和替换.

vba replace word-vba cap

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

Varient数据类型将值0更改为空或空白

我在下面的代码中传递值0

Dim searchtext As Varient

Public Sub xyz_page_load()
    searchtext = 0
If searchtext = "" Or searchtext = Empty Then
   Debug.Print "Error" 'this line should not execute.
Else
    Debug.Print "Good"
End If
End Sub
Run Code Online (Sandbox Code Playgroud)

它不应该进入"错误"代码行.任何人都可以让我知道为什么会这样吗?为什么varient数据类型将0视为空或空白?

excel vba excel-vba word-vba

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

VBA Word:我想找一个短语,选择它前面的单词,然后用文本表示

我在使用VBA命令找到某个短语时遇到问题,然后在它之前选择1或2个单词,然后将整个事物用斜体表示.

我能使用Selection.Find,Font.Italicise以及wdExtend相互独立的命令,但是当我将它们合并执行此任务,宏只是崩溃.有帮助吗?

Selection.Find.ClearFormatting
 With Selection.Find
     .Text = "Michael"
     .Replacement.Text = "Michael"
     .Forward = True
     .Wrap = wdFindStop
     Do While .Execute() = True
         Selection.TypeParagraph
         Selection.MoveLeft Unit:=wdWord, Count:=2, Extend:=wdExtend
         Selection.Find.Replacement.Font.Italic = True
         Selection.Font.Bold = True
         Selection.Collapse Direction:=wdCollapseEnd
     Loop
 End With
Run Code Online (Sandbox Code Playgroud)

vba ms-word word-vba

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

使用Excel宏中的单词选择对象

我在Excel中编写了一个宏,该宏可以打开和处理Word文档。当我通过vba编辑器运行该代码时,该代码有效,但是当我将代码行导入到excel宏中时,出现运行时438错误。

字宏

Selection.Collapse WdCollapseDirection.wdCollapseEnd
Run Code Online (Sandbox Code Playgroud)

将代码插入到Excel宏中,其中wtemp是word文档对象

wtemp.Activate
wtemp.Tables(3).Select
wtemp.Activate
wtemp.Selection.Collapse WdCollapseDirection.wdCollapseEnd
Run Code Online (Sandbox Code Playgroud)

我认为问题出在选择对象上,或者我缺少参考。我在VBAProject中包含的引用是:

  • Visual Basic应用程序
  • Microsoft Excel 16.0对象库
  • OLE自动化
  • Microsoft Office 16.0 Office库
  • Microsoft Word 16.0 Office库
  • Microsoft Forms 2.0对象库
  • Microsoft脚本运行时

excel vba excel-vba word-vba

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