-2
Visual Basicのマクロで一括編集したい何百ものdocx文書があります。彼らはすべて、このようになります。最初の行にIDを共有:Visual BasicのWord文書をバルクで編集する
9-ZKB-S
それとも
12-JK-17
私は削除したいと思います「 - 」それはこのようになりますので、IDから:
を9ZKBS
それとも
12JK17
nはどこかに私はこのような数字が続く単語持っている文書で:
Productionnumber. 42-563-12
をそして、私はまた、マイナスの文字を削除したいと思います:
Productionnumber. 4256312
私はどのVisual Basicのスクリプトを見つけましたワード文書を含むフォルダを選択したり、検索と置換を実行したりすることができます。各文書の最初の行
上の文字間のスペース、削除 - 、各文書で
- 削除:しかし、私は、私のような言及した特定の物事を行う方法がわかりません - と文字の間のスペースは、Productionnumberの後になります。
Sub CommandButton1_Click() Dim MyDialog As FileDialog, GetStr(1 To 500) As String '100 files is the maximum applying this code On Error Resume Next Set MyDialog = Application.FileDialog(msoFileDialogFilePicker) With MyDialog .Filters.Clear .Filters.Add "All WORD File ", "*.docx", 1 .AllowMultiSelect = True i = 1 If .Show = -1 Then For Each stiSelectedItem In .SelectedItems GetStr(i) = stiSelectedItem i = i + 1 Next i = i - 1 End If Application.ScreenUpdating = False For j = 1 To i Step 1 Set Doc = Documents.Open(FileName:=GetStr(j), Visible:=True) Windows(GetStr(j)).Activate Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "search" 'Find What .Replacement.Text = "find" 'Replace With .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 Application.Run macroname:="NEWMACROS" ActiveDocument.Save ActiveWindow.Close Next Application.ScreenUpdating = True End With MsgBox "operation end, please view", vbInformation End Sub