![]() |
|
|
|
#1
|
|||
|
|||
|
Hi everyone,
So I have some code that takes all HTML tags out of a memo like string of text. Here is the interesting thing. This code works fine one workbook but will not work at all on a different workbook. The only difference I have between the 2 is option explicit. Here is the code that I use. Again this has worked for other workbooks. Code:
Sub StripOutHTML ()
'Takes out HTML elements of a text string
Dim CheckRow as integer
Dim TempString as string
Dim WS as worksheet
Dim WB as workbook
Set WB = ThisWorkbook
Set WS = WB.Worksheets("Sheet1")
For CheckRow = 2 to 10
WS.Range("A" & CheckRow).replace "<li>", "- "
WS.Range("A" & CheckRow).replace "<*>", " "
WS.Range("A" & CheckRow).replace "*>", " "
WS.Range("A" & CheckRow).replace "<*>", " "
WS.Range("A" & CheckRow).replace "&*;", " "
TempString = WS.Range("A" & CheckRow).value
WS.Range("A" & CheckRow).value = Trim(TempString)
Next CheckRow
msgbox "Done"
End Sub
Thanks in advance. |
|
#2
|
||||
|
||||
|
You don't explicitly supply a number of the .replace parameters and perhaps the wrong ones are being assumed?
From help: "The settings for LookAt, SearchOrder, MatchCase, and MatchByte are saved each time you use this method. If you don’t specify values for these arguments the next time you call the method, the saved values are used. Setting these arguments changes the settings in the Find dialog box, and changing the settings in the Find dialog box changes the saved values that are used if you omit the arguments. To avoid problems, set these arguments explicitly each time you use this method." |
|
#3
|
|||
|
|||
|
Hmmmn that makes sense but I actually tried doing that already. I know my example code does not show that but I did try to add those parameters in and it still did not work. Im doing a different procedure that is not ideal right now I just find it odd that it only works some of the time. I will give what you are saying another try and see if I am over looking something.
Thanks |
|
#4
|
|||
|
|||
|
Here is an update on this problem. I tried setting the parameters and it still did not work. I actually forgot something very important when it comes to .replace. The reason it only works half the time is due to the length of the string. If the string is over 912 characters it simply will not work. I will be modifying my current code to store the string in separate variables of 900 characters. I wrote a simple code below to prove this theory. Thanks everyone for their help.
Code:
Option Explicit
Sub ReplaceTest()
' checks to see what limit a .replace can handle.
Dim CheckAmount As Integer
Dim Success As Boolean
CheckAmount = 2000
Success = False
Do Until Success = True
Range("a1").Value = WorksheetFunction.Rept("x", CheckAmount)
Range("a1").Replace "x", "s"
If Left(Range("a1").Value, 1) = "s" Then
Success = True
Exit Do
End If
CheckAmount = CheckAmount - 1
Loop
Range("B1").Value = CheckAmount + 1 ' Add one since the loop took one away.
MsgBox "The replace works with " & CheckAmount + 1 & " characters max."
End Sub
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Multiple replace does not work with 2013
|
fprm67 | Word VBA | 11 | 04-15-2014 03:14 PM |
| Find and replace No longer work | TJH | Word | 3 | 03-25-2014 11:33 PM |
work of labor vs work of excavator
|
ketanco | Project | 1 | 02-11-2014 08:53 AM |
work vs regular work. and how regular work works
|
user0044 | Project | 5 | 03-06-2012 07:28 AM |
Help with find and replace or query and replace
|
shabbaranks | Excel | 4 | 03-19-2011 08:38 AM |