![]() |
|
|
|
#1
|
||||
|
||||
|
The following should work:
Code:
Sub BatchDelete()
Dim strFile As String
Dim strPath As String
Dim oDoc As Document
Dim iFld As Integer
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Select folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , "List Folder Contents"
Exit Sub
End If
strPath = fDialog.SelectedItems.Item(1)
If Right(strPath, 1) <> "\" Then strPath = strPath + "\"
End With
strFile = Dir$(strPath & "*.*")
While strFile <> ""
If Right(LCase(strFile), 4) = ".rtf" Or Right(LCase(strFile), 4) = "docx" Then
Set oDoc = Documents.Open(strPath & strFile)
DelTables oDoc, "AAA"
oDoc.Close SaveChanges:=wdSaveChanges
End If
strFile = Dir$()
Wend
lbl_Exit:
Exit Sub
End Sub
Private Sub DelTables(oDoc As Document, sFind As String)
Dim oTable As Table
Dim lCount As Long
If oDoc.Tables.Count > 0 Then
For lCount = oDoc.Tables.Count To 1 Step -1
If InStr(1, oDoc.Tables(lCount).Range, sFind) > 0 Then
'Debug.Print oDoc.Name & vbTab & "Table " & lCount
oDoc.Tables(lCount).Delete
End If
Next lCount
End If
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#2
|
|||
|
|||
|
Thank You for Help and Support.
I am appreciating and grateful for your help. Below code is working well but not fulfilling my actual purpose, here code is deleting the find match word tables only. My Purpose: If the find string is more than one time in a document, then take the first match string as a base to delete the all ABOVE tables. but the below code is deleting the only match string tables. EX: AAA is a match string. There are N no of tables in a document and AAA is found at table 6 and table 9, then the code has to take the first match string as a base to delete all the tables. i.e. Table 1 to tables 5 has to be deleted, because AAA is firstly matched at Table 6. Suppose if I want to add a Chinese string as a find string shall it accept or not, previously I pasted as Unicode converter code at .Text = ChrW(32467) & ChrW(31639) & ChrW(22791) & ChrW(20184) & ChrW(37329) Native Text : 结算备付金 I worked on the Chinese documents and how to write a Chinese find word in VBA mode. Is there any best way to find strings in Chinese native? Presently am using Unicode converter to find Chinese strings over the document. Please highlight where I have to paste a Chinese string in this code. Please review the code once… Am thankful for your help and need… |
|
| Tags |
| batch deleting |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Table Deletions | ranjan | Word Tables | 4 | 09-01-2021 02:58 PM |
Table deletions based on a string.
|
nmkhan3010 | Word Tables | 3 | 05-03-2021 08:57 PM |
Batch applying a macro to remove Header and Footer using Batch Auto Addin
|
Edszx | Word VBA | 2 | 05-27-2019 11:16 PM |
| VBA to provide text string with specific formating based on Drop down list (content control) | MP1989 | Word VBA | 4 | 07-30-2018 02:40 AM |
| Batch change header text which is in a table | marafubu | Word VBA | 1 | 05-16-2018 04:52 AM |