deleting characters from autofiltered cells.

B

bert

I'm using the following subroutine to look at a specific autofiltered
cell, and if there are caret characters in it, to make the text in
between italic. Then it is supposed to delete the carets (^). It (or
a variation of it) worked in non-autofiltered cells. Here, the
italics line works, but the delete line causes a 1004 error. Here's
the code: ("C" is the specific cell)

Sub MakeItalic(C As Object)
Dim D1 As Integer
Dim D2 As Integer
Dim rng As Range
Set rng = Worksheets("Student_Data").AutoFilter.Range
rw1 = C.Row
clm1 = C.Column
Do While InStr(1, C.Text, "^")
D1 = Int(InStr(1, C.Text, "^"))
D2 = Int(InStr(D1 + 1, C.Text, "^"))
rng.Characters(Start:=D1 + 1, Length:=(D2 - 1) -
D1).Font.FontStyle = "Italic"
rng.Cells(rw1, clm1).Characters(Start:=D2, Length:=1).Delete
Worksheets("Student_Data").Cells(rw1, clm1).Characters(Start:=D1,
Length:=1).Delete
Loop
End Sub
 
P

Per Jessen

Hi
As your range is already autofitered, I don't see why you want to use the
autofilter statement again.

Try if this will do it:

Sub MakeItalic(ByVal C As Range)
Dim D1 As Long
Dim D2 As Long
Set C = C.Cells(1, 1)
Do While InStr(1, C.Text, "^")
D1 = InStr(1, C.Text, "^")
D2 = InStr(D1 + 1, C.Text, "^")
C.Characters(Start:=D1 + 1, Length:=(D2 - 1) - D1).Font.FontStyle =
"Italic"
C = Application.WorksheetFunction.Substitute(C.Value, "^", "")
Loop
End Sub

BTW: I would rather use "C as Range" than "C as Object"

Regards,
Per
 
B

bert

Per:
Thanks. This is almost doing it. Your last line: C =
Application.WorksheetFunction.Substitute(C.Value, "^", "")
does delete the ^'s but it also changes the italicized text back to
normal text.
If there's a way around that.
Bert
 
B

bert

Per:
Disregard my other message. I combined my approach with yours, and it
works fine, deleting the ^'s and preserving the italics:
C.Characters(Start:=D2, Length:=1).Delete
C.Characters(Start:=D1, Length:=1).Delete
Thanks so much.
Bert
 
P

Per Jessen

Hi Bert

Thanks for your reply, I'm glad to help.

--
Per

"bert" <[email protected]> skrev i meddelelsen
Per:
Disregard my other message. I combined my approach with yours, and it
works fine, deleting the ^'s and preserving the italics:
C.Characters(Start:=D2, Length:=1).Delete
C.Characters(Start:=D1, Length:=1).Delete
Thanks so much.
Bert
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top