#1
|
|||
|
|||
VBA to find text, replace with multiple lines of text
Having issues writing script to find a single tag, and replace it with multiple lines of text. I wrote some VBA to find a tag such as: <<testtag>> And looking to replace it with something like below: <h2>Live Chat</h2> <p>A <a href="https://www.comm100.com/blog/live-chat-benefits.html">research report</a> found that Live Chat was hands down the preferred method of communication for online shoppers when compared to other service channels. A <a href="https://www.business2community.com/b2b-marketing/4-powerful-ways-live-chat-website-improves-b2b-inbound-sales-01775265">separate study</a> by the American Marketing Association states that customers that use live chat are three times more likely to make a purchase compared to those who don’t.</p><br> <p>a <b>Best practices</b> for live chat include:</p> The problem is it only replaces with the first line above: "<h2>Live Chat</h2>" Any ideas? Below is the chunk of code responsible for this (please note I am using excel to execute in Word): Code:
With WordDoc.Content.Find .Text = TagName .Replacement.Text = TagValue .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll 'Find & Replace all instances End With |
#2
|
|||
|
|||
Well TabValue (assuming that has been set to the value of your long string of replacement text) is too long for a Replacement.Text property.
You could have that long string set somewhere in the document e.g., a bookmark named "bmText" and use: Code:
Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oRng As Range Dim strFind As String Dim strReplace As String strFind = "<<testtag>>" Set oRng = ActiveDocument.Range With oRng.Find .Text = strFind While .Execute oRng.Text = ActiveDocument.Bookmarks("bmText").Range.Text oRng.Collapse wdCollapseEnd Wend End With lbl_Exit: Exit Sub End Sub |
#3
|
|||
|
|||
Quote:
Are you suggesting I house all the html content (about 40 lines) in a bookmark? I am technically not using bookmarks in the overall macro, so not sure that will work. |
#4
|
|||
|
|||
That was just one suggestion. You could house it in another document, in a table cell, a building block or perhaps a concatenated string. It is just too long for the Replace.Text property.
|
Thread Tools | |
Display Modes | |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Find and replace header text across multiple files | LG1972 | Excel | 1 | 12-25-2018 04:27 AM |
Find & Replace text in Field Code across multiple documents | RPM7 | Word VBA | 6 | 05-12-2017 12:58 AM |
Need assistance to find and replace text within headers/footers in excel - multiple worksheets | teddycatnc | Excel | 3 | 03-07-2016 12:04 AM |
Macro to find coloured text and replace with form-field/formtext containing that text | tarktran | Word VBA | 1 | 11-26-2014 08:12 AM |
Find and Replace multiple lines/paragraphs | jcw | Word | 1 | 11-18-2011 11:47 AM |