#1
|
|||
|
|||
Replace dashes between two digits without using Selection
Hi! I'm trying to replace m-dashes with n-dashes between two digits (text and footnotes) without using Selection. How can I modify this code? Thanks!
Sub DASHES() Dim mStory As Range Dim mRange As Range For Each mStory In ActiveDocument.StoryRanges mStory.Find.Execute FindText:="^#" & Chr(150) & "^#", ReplaceWith:=Chr$(45), Replace:=wdReplaceAll Next mStory Set mStory = Nothing End Sub |
#2
|
|||
|
|||
Hi! I'm trying to replace m-dashes with n-dashes between two digits (text and footnotes) without using Selection. How can I modify this code? Thanks!
Quote:
|
#3
|
||||
|
||||
What's your issue ? the code does its job.
__________________
Difficult is not to know but to share what you know (Han Fei Tzu reworked) |
#4
|
|||
|
|||
Many thanks for your interest, Rollis13! The code seems perfect, the only trouble is that it rarely works. In most attempts it runs correctly through each line but without changing what it is expected to change.
|
#5
|
||||
|
||||
With "^#" & Chr(150) & "^#" it only works if it finds a m-dash between two numbers (and no spaces in between); ^# is jolly for a number.
__________________
Difficult is not to know but to share what you know (Han Fei Tzu reworked) |
#6
|
|||
|
|||
Thanks! I'm well aware of that. I was just asking: how can I modify this code to make it replace m-dashes between two digits without using Selection?
|
#7
|
||||
|
||||
In your macro you are using function .Find, I don't see any .Select. Or, do you want to prevent users from selecting.
__________________
Difficult is not to know but to share what you know (Han Fei Tzu reworked) |
#8
|
|||
|
|||
Sorry, but I don't understand what you mean. As I wrote before, I'm trying to replace m-dashes with n-dashes between two digits (text and footnotes) without using Selection. Hope to get some help to modify this code. Thanks!
Code:
Sub DASHES() 'Testo e Note: Sostituisce m-dash con n-dash Dim mStory As Range 'Nel testo e nelle note Dim mRange As Range For Each mStory In ActiveDocument.StoryRanges 'Ranges = testo e note mStory.Find.Execute FindText:="^#" & Chr(150) & "^#", ReplaceWith:=Chr$(45), Replace:=wdReplaceAll Next mStory Set mStory = Nothing End Sub |
#9
|
||||
|
||||
I can't be of any other help: you're not using Selection in your macro. Otherwise, explain better what you mean by "Selection".
__________________
Difficult is not to know but to share what you know (Han Fei Tzu reworked) |
#10
|
|||
|
|||
Please ignore the word 'Selection'. What I need is a modification of the code below so as to replace each m-dash with an n-dash.
Code:
Sub DASHES() 'Testo e Note: Sostituisce m-dash con n-dash Dim mStory As Range 'Nel testo e nelle note Dim mRange As Range For Each mStory In ActiveDocument.StoryRanges 'Ranges = testo e note mStory.Find.Execute FindText:="^#" & Chr(150) & "^#", ReplaceWith:=Chr$(45) Next mStory Set mStory = Nothing End Sub |
#11
|
|||
|
|||
Hi, RobiNew! If undersatand correctly what you want, try the following. But note that m-dash has code 151 and n-dash has code 150.
Code:
Sub DASHES() 'Testo e Note: Sostituisce m-dash con n-dash Dim mStory As range 'Nel testo e nelle note Dim mRange As range For Each mStory In ActiveDocument.StoryRanges mStory.Find.Execute FindText:="([0-9])" & Chr(151) & "([0-9])", _ ReplaceWith:="\1" & Chr(150) & "\2", _ MatchWildcards:=True, _ Replace:=wdReplaceAll Next mStory End SUb |
#12
|
||||
|
||||
Em-dash is Chr$(151) while En-dash is Chr$(150) so change your line of code to this:
Code:
mStory.Find.Execute FindText:="([0-9])" & Chr$(151) & "([0-9])", ReplaceWith:="\1" & Chr$(150) & "\2", MatchWildcards:=True, Replace:=wdReplaceAll
__________________
Difficult is not to know but to share what you know (Han Fei Tzu reworked) |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
find and replace only in current selection | Bikram | Word VBA | 4 | 11-12-2021 07:31 AM |
Find and replace numbers (up to three digits) | ballpoint | Word | 3 | 06-13-2018 08:58 AM |
Search+replace all --- [3 dashes] with square wingding | imported_contiw | Word | 14 | 10-04-2017 01:03 PM |
Macro to replace digits with letters | Bananabean | Word VBA | 6 | 09-14-2013 09:28 PM |
Problems merging in last 4 digits of an account higher than 16 digits | Glynda | Mail Merge | 1 | 04-08-2011 12:17 AM |