vba word find next vba findnext - 电脑|办公 - 电脑办公-杀毒安全-网络-V3学习网
微商网
 
 
导航:首页 |电脑|办公|正文

vba word find next vba findnext

时间:2020-07-30 09:45:06
word vba中 Selection find 疑惑 操作步骤。 第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。 第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,
作者:

vba word find next

word vba中 Selection.find 疑惑.

操作步骤。

第一,首先将需要批量替换的多个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文档中“大家好”已被替换为“你好”了。

vba findnext重复,每个结果出现两个!

代码没有问题,那就是数据的问题了,因为您只记录了行号,而且因为您采用的是部分匹配,那很有可能是同一行内有两个单元格都包含了您所查找的内容。

excel默认的searchorder是先行后列。

您可以改一下这个参数,然后看看查找结果出现的顺序来判断是不是我上面说的原因。

(VBA)各位,有否将整文档中的“,”调换为“,”(即半角符号改成全角...

Sub Macro2()Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = ",".Replacement.Text = ",".Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllShowVisualBasicEditor = TrueEnd Sub

vba word 中 怎么得到当前文档中所有字体的名称啊

给你代码吧:Sub a()Dim str As StringFor Each c In ThisDocument.CharactersIf InStr(str, c.Font.Name) = 0 And Len(c.Font.Name) > 0 Thenstr = str & c.Font.Name & ","End IfNextMsgBox UBound(Split(Left(str, Len(str) - 1), ",")) + 1 & "种字体,分别是" & vbCrLf & Left(str, Len(str) - 1)End Sub

请问如何在word里输入数字的时候能自动加上千分符和.00这样的两位...

其他输入法不清楚,搜狗输入法先输入v再输入数字会出现千分位形式,但.00还是要自己输入有一段宏代码运行后可以自动给数字加千分位及两位小数位转帖在Word中也实现数字自动千分位格式这个方法比较好。

收藏一下。

(转自“中国会计视野论坛”里zhufree朋友的帖子。

)打开WORD程序,在上方菜单区域中,右键单击,选中Visual Basic。

点击“Visual Basic编辑器”图标,打开Visual Basic,在“ThisDocument ”中双击,然后在右边的窗口中复制下方的代码:2、对所有的数字加千分位,并且自动加上尾数.00Sub yycealjj1()"本代码旨在解决WORD中数据转化为千分位"数据限定要求:-922,337,203,685,477.5808 到 922,337,203,685,477.5807"转化结果1000以上数据以千分位计算,小数点右侧保留二位小数;1000以下数据不变Dim myRange As Range, i As Byte, myValue As CurrencyOn Error Resume NextApplication.ScreenUpdating = False "关闭屏幕更新NextFind: Set myRange = ActiveDocument.Content "定义为主文档文字部分With myRange.Find "查找.ClearFormatting "清除格式.Text = "[0-9]{4,15}" "4到15位数据.MatchWildcards = True "使用通配符Do While .Execute "每次查找成功i = 2 "起始值为2"如果是有小数点If myRange.Next(wdCharacter, 1) = "." Then"进行一个未知循环While myRange.Next(wdCharacter, i) Like "#"i = i + 1 "只要是[0-9]任意数字则累加Wend"重新定义RANGE对象myRange.SetRange myRange.Start, myRange.End + i - 1End IfmyValue = VBA.Val(myRange) "保险起见转换为数据,也可省略myRange = VBA.Format(myValue, "Standard") "转为千分位格式GoTo NextFind "转到指定行LoopEnd WithApplication.ScreenUpdating = True "恢复屏幕更新End Sub关闭Visual Basic编辑器,回到WORD界面。

输入文章后,点击“运行宏”图标,运行yycealjj1宏,即可对数字加千分位。

(可以插入模板,以后而要时加载即可。

用vba代码怎么 检查word两处数字是否一致(数字的位置不固定)

Sub 宏2()Dim arr()Selection.Find.ClearFormattingWith Selection.Find.Text = "该项目的总投资为*元".Replacement.Text = "".Forward = True.Wrap = wdFindContinue.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = False.MatchAllWordForms = False.MatchSoundsLike = False.MatchWildcards = TrueEnd WithDon = n + 1ReDim Preserve arr(1 To n)Selection.Find.Executesr = Selection.Rangearr(n) = Mid(sr, 9)Loop Until Selection.Find.Execute = Falseeq = TrueFor i = 1 To n - 1If arr(i) arr(i + 1) Theneq = FalseExit ForEnd IfNextIf eq = True ThenMsgBox "相等"ElseMsgBox "不相等"End IfEnd Sub

word vba问题 如何批量替换文件夹内所有的WORD文档内相同的词组...

Sub 批量修改()"On Error Resume NextDim FileOpenDim X As IntegerDim wb As WorkbookApplication.ScreenUpdating = FalseFileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="选择工作薄")X = 1While X Set wb = Workbooks.Open(FileOpen(X))wb.Sheets(1).[a1] = "456"wb.Sheets(1).[D4] = "王月"wb.Close TrueX = X + 1WendEnd Sub这个宏 会把 你选中的文件 批量替换 sheet1 :A1的内容 改为 456 D4 的内容改为 王月, 你可以根据你的实际情况修改代码就可以了, 如果单元格不固定就 用FIND 方法找到再修改

怎么用VBA获得word图片的像素值

参考:Sub 嵌入型图片的像素() On Error Resume Next With Selection.Range.Find .ClearFormatting .Replacement.ClearFormatting .Execute findtext:="^g", MatchWildcards:=False, Wrap:=wdFindStop MsgBox "该图片的像素为:" & Selection.InlineShapes(1).Width _ & " * " & Selection.InlineShapes(1).Height End WithEnd Sub

大家还关注
    
阅读排行
推荐阅读