Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
deleting characters from autofiltered cells.
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
deleting characters from autofiltered cells.
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 "bert" skrev i meddelelsen ... 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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
deleting characters from autofiltered cells.
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 On Oct 12, 9:48*am, "Per Jessen" wrote: 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 "bert" skrev i ... 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- Hide quoted text - - Show quoted text - |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
deleting characters from autofiltered cells.
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 On Oct 12, 9:48*am, "Per Jessen" wrote: 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 "bert" skrev i ... 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- Hide quoted text - - Show quoted text - |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
deleting characters from autofiltered cells.
Hi Bert
Thanks for your reply, I'm glad to help. -- Per "bert" 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 On Oct 12, 9:48 am, "Per Jessen" wrote: 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 "bert" skrev i ... 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- Hide quoted text - - Show quoted text - |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Deleting LF Characters in cells | Excel Worksheet Functions | |||
How do I add up cells that are autofiltered? | Excel Worksheet Functions | |||
Copying Autofiltered cells | Excel Programming | |||
autofiltered cells | Excel Programming | |||
Deleting AutoFiltered Rows | Excel Programming |