测绘小当家 测绘小当家 今天
点击上方蓝字关注小当家
最近因为在做大量报表遇见一个问题,不小心把一个编号写错了,一错百错,然后导致大量的表格里面的编号都是错了,如果人工改需要一个个的文件去打开然后替换,非常麻烦没有效率。我想想怎么能非常有效率的去解决呢,于是我想到了vba,刚刚好今天休息,于是研究了下。
代码如下
Sub a()
On Error Resume Next
Dim sFolderFullPath As String
Dim oFiles As Collection
Dim lFileIndex As Long
Dim sFileFullName As String, sFileName As String
Dim oDoc As Word.Document
Dim lDocCount As Long
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Title = '请选择文件夹'
.Show
If .SelectedItems.Count = 0 Then
MsgBox '您没有选择一个文件夹,程序将退出!'
Exit Sub
End If
sFolderFullPath = .SelectedItems.Item(1)
End With
sFileName = Dir(sFolderFullPath & '\*.doc*', vbNormal)
While Len(sFileName) > 0
sFileFullName = sFolderFullPath & '\' & sFileName
Set oDoc = Documents.Open(sFileFullName)
If Not oDoc Is Nothing Then
With Selection.Find
.ClearFormatting
.Text = '需要替换的文字'
.Replacement.ClearFormatting
.Replacement.Text = '替换后的文字'
.Execute Replace:=wdReplaceAll, Forward:=ture, Wrap:=wdFindContinue
oDoc.Save
oDoc.Close
End With
End If
sFileName = Dir '枚举下一个
Wend
End Sub
打开word的vba
如果没有开发者工具选项alt+F11可以打开,或者在文件——选项——自定义功能区把开发者工具选项勾选。
2.到达这个界面
没有代码工具窗口的,视图——代码窗口或者F7即可
3.将代码粘贴到工具窗口
.Text = '需要替换的文字'
.Replacement.ClearFormatting
.Replacement.Text = '替换后的文字'
修改需要替换和替换后的文字。
4.替换
然后等一会它就全部替换了
联系客服