我编写了一个宏来允许用户从组合框中选择办公室分支,现在我想将相关地址插入到特定位置的word文档中.我使用表来保存地址,但是当创建表时,它会在光标恰好位于页面上的任何位置创建.
我似乎无法找到一种方法来告诉桌子准确定位(x,y)我需要它出现的位置.由于文档中没有其他内容,只有文本,因此没有任何内容可供参考.
我也试图尽可能远离使用Active X控件.
即,我在按钮处理程序中调用了以下代码段:
TextBox1.Text = Application.GetOpenFilename("All files (*.*),*.*", _
1, "Open the Raw Data Files", , False)
If TextBox1.Text = "False" Then TextBox1.Text = ""
Run Code Online (Sandbox Code Playgroud)
该错误说:“编译器错误:未找到方法或数据成员”
提前致谢!
我有一堆邮件合并模板设置,当我合并文档时,我想将结果拆分成单独的文件,每个文件的名称都基于合并字段“ FileNumber”。
我目前拥有的代码是:
Sub splitter()
' Based on a macro by Doug Robbins to save each letter created by a mailmerge as a separate file.
' With help from http://www.productivitytalk.com/forums/topic/3927-visual-basic-question-for-merge-fields/
Dim i As Integer
Dim Source As Document
Dim Target As Document
Dim Letter As Range
Dim oField As Field
Dim FileNum As String
Set Source = ActiveDocument
For i = 1 To Source.Sections.Count
Set Letter = Source.Sections(i).Range
Letter.End = Letter.End - 1
For Each oField In Letter.Fields
If oField.Type …Run Code Online (Sandbox Code Playgroud) 对VBA来说是非常新的东西,但我们的客户希望将1,850页Word Tables中的所有数据正确对齐。我认为这在VBA中非常容易。我正在尝试解决问题,我敢肯定自己会自己确定,但是最后期限迫使我寻求帮助。因此,如果我错过了已发布的解决方案,请提前致歉。
例如,他们想要这样:

要这样:

所以我有:
Dim oTable As Table
Dim oRow As Row
For Each oTable In ActiveDocument.Tables
For Each oRow In oTable.Rows
Run Code Online (Sandbox Code Playgroud)
但是我不知道如何仅遍历表的主体。同样,前4行(表标题)也合并到一个单元格中,第一列仍然保持对齐。帮助,下回合对我:)
我习惯使用Selection.WholeStory,但现在有一个宏,我在那里做了很多搜索和替换操作.我只希望模块在运行宏之前在用户选择的选择中进行搜索和替换.
我怎样才能做到这一点?我已经尝试过Selection.Text,但Word告诉我这是Text属性的无效使用.
补充: 我的模块就是这样开始的
Sub Bibliography()
With ActiveDocument
.TrackRevisions = False
.PrintRevisions = False
.ShowRevisions = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Run Code Online (Sandbox Code Playgroud)
通过不指定选择对象,我应该只获得用户在运行宏之前已经做出的选择.但这似乎不起作用.例如,下面的代码改变了整个文档中的出现次数,而不仅仅是用户做出的选择
With Selection.Find
.Text = "%"
.Replacement.Text = " %"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Run Code Online (Sandbox Code Playgroud) 我需要编辑通过AddPicture方法插入的图像的属性。
1)我需要将高度调整为0.5英寸,并且宽度可变(锁定纵横比)。
2)自动换行=“在文字前面”
用这种方法可以吗?如果是这样,如何添加这些属性?如果没有,我应该使用什么其他方法?
Sub replaceWithImage()
Dim imageFullPath As String
Dim FindText As String
imageFullPath = "C:\Logo.jpg"
FindText = "PlaceHolder"
'Application.ScreenUpdating = False
With Selection
.HomeKey Unit:=wdStory
With .Find
.ClearFormatting
.text = FindText
' Loop until Word can no longer
' find the search string, inserting the specified image at each location
Do While .Execute
Selection.MoveRight
Selection.InlineShapes.AddPicture FileName:=imageFullPath, LinkToFile:=False, SaveWithDocument:=True
Loop
End With
End With
End Sub
Run Code Online (Sandbox Code Playgroud) 我知道如何获得word文档中的每个段落.但我正在寻找一种循环MS Word文档中每个单词的方法.
Sub Sample()
Dim apara As Paragraph
Dim lineText As String
For Each apara In ActiveDocument.Paragraphs
lineText = apara.Range
'Now print the paragraph
Debug.Print lineText
Next apara
End Sub
Run Code Online (Sandbox Code Playgroud) 我有一个很大的word文档(> 400页),有很多标题的交叉引用.到目前为止,我总是提到标题的标题,但现在我想改变它并参考标题所在的页面.
我没有通过GUI找到解决方案(当然除了手动处理),所以我正在研究编写一些VBA.不幸的是,我只找到了一种方法来列出所有可以交叉引用的目标(via GetCrossReferenceItems),但我需要一种方法来访问实际的交叉引用字段.
你能帮帮我吗?交叉引用字段是否与超链接相同?
我知道如何在使用VBA的Word 2010中使用变量。但是,当文档关闭并重新打开时,它们全部重置。
如何将变量永久存储在Word文档中?
我正在Word和ExcelVBA 做一些交错的剪贴板魔术,我认为剪贴板是一种共享资源,可能应该由一个简单的互斥体来保护。
我将如何在VBA中创建和释放命名互斥体?我找不到与VBA相关的任何内容。好像没有人从VBA创建互斥锁。不可能吗