#1
|
|||
|
|||
How to express "or" in VBA? (code included)
Hi all. I have a document that has some empty lines start with "uppercase letter + ." like this:
2018-01-17_114845.png Or simply start with "." like this: 2018-01-17_114818.png My code so far can only remove the 2nd case Code:
Sub DeleteLinesStartWith() Dim oPara As Paragraph Dim oRng As Range Dim i As Integer For Each oPara In ActiveDocument.Paragraphs Set oRng = oPara.Range.Words(1) If LCase(Trim(oRng.Text)) = "." Then oPara.Range.Delete End If Next oPara End Sub If LCase(Trim(oRng.Text)) = "." Then 2. Some signs cannot be written in the VBA, like "•". In this case then, how can I delete an empty line start with "•"? Use the Unicode somehow? Thank you very much. |
#2
|
||||
|
||||
You don't need an OR test for what you've described; you need a LIKE test:
Code:
Sub DeleteLinesStartWith() Dim i As Long With ActiveDocument For i = .Paragraphs.Count To 1 Step -1 With .Paragraphs(i).Range If LCase(Trim(.Words.First.Text)) Like "[!.•]" Then .Delete End With Next i End With End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Quote:
And also, I want to delete empty lines start with letters, like "B". In that case then how could VBA tell the difference between "A." and "A" if you use Like? |
#4
|
||||
|
||||
Perhaps you should spend a few moments studying how the Like command works (it's there, in the VBA help file) instead of cobbling together whatever comes out of a thought bubble then complaining the code doesn't work. It works for what you described in your first post's second screenshot and the numbered paragraphs, which isn't what you're now saying it doesn't work with. Quite obviously, if you want to delete paragraphs like your first screenshot, another test is required. For example:
If LCase(Trim(.Words.First.Text)) Like "[A-Z][!.•]" Then .Delete In any event, if what you're trying to do is to delete paragraphs with fewer than, say, 3 characters, an entirely different approach is called for. I'd be inclined to do it with a simple wildcard Find/Replace, which would be far faster than looping through all the paragraphs.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
"Internet Connection Needed ... Error Code: 0-9" When Trying to use Online Repair | millardjd | Office | 0 | 01-22-2015 07:54 AM |
How to get "Track Changes" to ignore "Field Code Changed"? | Joey Cheung | Word | 2 | 10-31-2014 07:55 PM |
Cross Reference Heading Number with the word "Section" included | bblouin | Word | 5 | 12-20-2012 05:27 PM |
code "0020" appearing instead of space chracter in word docm, file | radleyyeldar | Word | 1 | 07-30-2012 05:13 AM |
How to choose a "List" for certain "Heading" from "Modify" tool? | Jamal NUMAN | Word | 2 | 07-03-2011 03:11 AM |