word vba中 Selection.find 疑惑.
Private Sub CommandButton1_Click()Dim p, r, s, ts= "石膏板造型顶"With Selection.Find.ClearFormatting.MatchWholeWord = True.MatchCase = Falset = .Execute(FindText:=s)End Withp= Selection.Information(wdActiveEndPageNumber)r= Selection.Information(wdFirstCharacterLineNumber)If t ThenMsgBox "成功,已找到“" & s & "”" & vbCrLf & _"页码:"& p & vbCrLf & "行数:" & r, vbOKOnly, _"成功"ElseMsgBox "很遗憾,没有找到“" & s & "”", vbOKOnly, _"遗憾"End IfEnd Sub...
关于Word中 的VBA 编程
解决你的“顺便问下".....Sub Macro1()Dim strText As StringstrText = "建立反对撒客里空的龙卷风"Selection.TypeText strTextSelection.MoveStart Unit:=wdLine, Count:=-1Selection.MoveEnd Unit:=wdCharacter, Count:=-1 * (Len(Selection.Text) - 4)Selection.MoveStart Unit:=wdCharacter, Count:=3Selection.Font.Bold = TrueMsgBox Selection.TextEnd Sub
WORD VBA: 查找字符并选择整个格子
这个应该完全满足要求了吧。
Sub TEST()Dim MyTable As Table, MyRng As CellFor Each MyTable In ThisDocument.TablesFor Each MyRng In MyTable.Range.CellsWith MyRng.Range.Find.Text = "RRDD-ST".ExecuteIf .Found ThenMyRng.Range.Style = ActiveDocument.Styles("引用")End IfEnd WithNext MyRngNext MyTableEnd Sub
word 使用vba 怎么改一个内容?
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim myPas As String, myPath As String, i As Integer, myDoc As DocumentWith Application.FileDialog(msoFileDialogFolderPicker) .Title = "选择目标文件夹" If .Show = -1 Then myPath = .SelectedItems(1) Else Exit Sub End IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch .LookIn = myPath .FileType = msoFileTypeWordDocuments If .Execute > 0 Then For i = 1 To .FoundFiles.Count Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "大家好" .Replacement.Text = "你好" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = True .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll myDoc.Save myDoc.Close Set myDoc = Nothing Next End IfEnd WithApplication.ScreenUpdating = TrueEnd Sub 第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。
就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
如何用EXCEL的vba删除WORD的分页符
使用VBA操作Word表格 一、生成表格 Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range Set mRange = ActiveDocument.Range mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub 上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码: TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置 Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格 TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行 TableObject.Rows(i).Select'选定第i行 选定列 TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select 首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式 Selection.Cells.VerticalAlignment=垂直对齐常数 也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型 下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With 同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸 下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0 For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End If SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next 上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) =============================================== 编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
=============================================== 下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As Integer Dim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen Then Do While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen) mStr = Right(mStr, Len(mStr) - mLen) tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf Loop tmpStr(1) = tmpStr(1) + mStr Else tmpStr(1) = mStr
使用VBA在查询WORD中表格的内容
Execute 方法================================ 应用于 Find 对象的 Execute 方法。
================================ 运行指定的查找操作。
如果查找成功,则返回 True。
Boolean 类型。
expression.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) expression 必需。
该表达式返回 Find 对象。
FindText Variant 类型,可选。
指定需搜索的文本。
可用空字符串 ("") 搜索格式,也可通过指定相应的字符代码搜索特殊字符。
例如,“^p”对应段落标记,“^t”对应制表符。
有关可以使用的特殊字符列表,请参阅查找和替换文本或其他项。
MatchCase Variant 类型,可选。
如果为 True,则指定查找文本区分大小写。
相当于“编辑”菜单“查找和替换”对话框中的“区分大小写”复选框。
MatchWholeWord Variant 类型,可选。
如果为 True,则查找操作只定位于完全匹配的单词,而并非长单词中的部分文字。
相当于“查找和替换”对话框中的“全字匹配”复选框。
MatchWildcards Variant 类型,可选。
如果为 True,则查找的文字包含特殊搜索操作符。
相当于“查找和替换”对话框中的“使用通配符”复选框。
MatchSoundsLike Variant 类型,可选。
如果为 True,则查找操作定位于与要查找的文字发音相近的单词。
相当于“查找和替换”对话框中的“同音”复选框。
MatchAllWordForms Variant 类型,可选。
如果为 True,则查找操作定位于要查找的文字的所有形式(例如,查找“sit”的同时,还查找“sitting”和“sat”),相当于“查找和替换”对话框中的“查找单词的各种形式”复选框。
Forward Variant 类型,可选。
如果为 True,则向下(向文档尾部)搜索。
Wrap Variant 类型,可选。
如果搜索从不是文档的起始位置开始,并已搜索到文档的末尾(如 Forward 设置为 False,则相反),用本参数控制接下来的操作。
当存在选定内容或区域,而又没有在该选定内容或区域中找到搜索文字时,也可用本参数控制接下来的操作。
可取下列 WdFindWrap 常量之一。
WdFindWrap 可以是下列 WdFindWrap 常量之一: wdFindAsk 搜索完选定内容或者区域后,Microsoft Word 会显示一条消息,询问是否搜索文档的其他部分。
wdFindContinue 到达搜索区域的开始或者结尾时,继续执行查找操作。
wdFindStop 到达搜索区域的开始或者结尾时,停止执行查找操作。
Format Variant 类型,可选。
如果为 True,则查找操作定位于格式或带格式的文本,而不是查找文本。
ReplaceWith Variant 类型,可选。
替换文字。
若要删除由 Find 参数指定的文字,可使用空字符串 ("")。
与 Find 参数相似,本参数也可以指定特殊的字符和高级搜索条件。
若要将图形对象或者其他非文本项指定为替换内容,可将这些项置于“剪贴板”上,然后将 ReplaceWith 指定为“^c”。
Replace Variant 类型,可选。
指定执行替换的个数:一个、全部或者不替换。
可取下列 WdReplace 常量之一。
WdReplace 可以是下列 WdReplace 常量之一: wdReplaceAll wdReplaceNone wdReplaceOne MatchKashida Variant 类型,可选。
如果为 True,则查找结果应与阿拉伯语文档中区分 kashidas 的文本相匹配。
由于选择或安装的语言支持不同(例如,英语(美国)),此参数可能不可用。
MatchDiacritics Variant 类型,可选。
如果为 True,则查找操作在从右向左的语言的文档中按照匹配音调符号来匹配文字。
由于选择或安装的语言支持不同(例如,英语(美国)),此参数可能不可用。
MatchAlefHamza Variant 类型,可选。
如果为 True,则在阿拉伯语文档中,查找内容应与区分 Alef Hamzas 的文本相匹配。
由于选择或安装的语言支持不同(例如,英语(美国)),此参数可能不可用。
MatchControl Variant 类型,可选。
如果为 True,则在从右向左的语言的文档中,查找内容应与区分双向控制字符的文本相匹配。
由于选择或安装的语言支持不同(例如,英语(美国)),此参数可能不可用。
说明 如果 MatchWildcards 为 True,可为 FindText 参数指定通配符和其他高级搜索准则,例如,“*(ing)”查找任何以“ing”结尾的单词。
若要搜索符号字符,可键入脱字符号 (^)、零 (0),然后键入符号字符的代码。
例如,“^0151”对应一条长划线 (—)。
除非另外指定,否则替换文本将沿用文档中被替换文本的格式。
例如,如果用“xyz”替换字符串“abc”,那么加粗“abc”将被加粗字符串“xyz”所替换。
另外,如果 MatchCase 为 False,那么查找到的大写文本将被大写的替换文本替换,而无论搜索文本和替换文本是否大小写。
上例中,“ABC”将被“XYZ”替换。
=================================== 应用于 Dialog 和 KeyBinding 对象的 Execute 方法。
=================================== 对于 Dialog 对象:应用 Microsoft Word 对话框的当前设置。
对于 KeyBinding 对象:运行与指定的组合键相关的命令。
expression.Execute ...
转载请注明出处51数据库 » wordvba中find
我的大剑已经饥渴难耐