Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello,
I want to create a macro to test across a range of cells. In the below attempt at the code, I assumed that the user has highlighted the desired block. I want to test the contents of each cell, and to format superscript only aphabetic characters (not numeric, and certainly not the entire cell). The data I'm working with is primarily numeric, and any alphabetic characters are a statistics notation. It would greatly save our graphics folks time to have this macro that will superscript all alphabet characters while not touching the numeric characters. I cobbled together the below code based on code I found on F. David McRitchie's webpage (http://www.mvps.org/dmcritchie/excel/join.htm). It kinda works. But it only superscripts alpha characters the first cell in the highlighted range. I need it to superscript for all cells in the highlighted range. Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Mid(cell, i, 1) = "A" Then With ActiveCell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub Thank you in advance for any assistance! Carolyn |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Option Explicit
Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Not IsNumeric(Mid(cell, i, 1)) Then With cell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub this superscripts everything that isn't a 1-9. -- Regards, Tom Ogilvy "Carolyn" wrote: Hello, I want to create a macro to test across a range of cells. In the below attempt at the code, I assumed that the user has highlighted the desired block. I want to test the contents of each cell, and to format superscript only aphabetic characters (not numeric, and certainly not the entire cell). The data I'm working with is primarily numeric, and any alphabetic characters are a statistics notation. It would greatly save our graphics folks time to have this macro that will superscript all alphabet characters while not touching the numeric characters. I cobbled together the below code based on code I found on F. David McRitchie's webpage (http://www.mvps.org/dmcritchie/excel/join.htm). It kinda works. But it only superscripts alpha characters the first cell in the highlighted range. I need it to superscript for all cells in the highlighted range. Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Mid(cell, i, 1) = "A" Then With ActiveCell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub Thank you in advance for any assistance! Carolyn |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thank you very much for you assistance Tom. My graphics person is doing
cartwheels. Carolyn "Tom Ogilvy" wrote: Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Not IsNumeric(Mid(cell, i, 1)) Then With cell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub this superscripts everything that isn't a 1-9. -- Regards, Tom Ogilvy "Carolyn" wrote: Hello, I want to create a macro to test across a range of cells. In the below attempt at the code, I assumed that the user has highlighted the desired block. I want to test the contents of each cell, and to format superscript only aphabetic characters (not numeric, and certainly not the entire cell). The data I'm working with is primarily numeric, and any alphabetic characters are a statistics notation. It would greatly save our graphics folks time to have this macro that will superscript all alphabet characters while not touching the numeric characters. I cobbled together the below code based on code I found on F. David McRitchie's webpage (http://www.mvps.org/dmcritchie/excel/join.htm). It kinda works. But it only superscripts alpha characters the first cell in the highlighted range. I need it to superscript for all cells in the highlighted range. Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Mid(cell, i, 1) = "A" Then With ActiveCell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub Thank you in advance for any assistance! Carolyn |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Carolyn,
You did all the work - I just did some minor tweaking. Pat yourself on the back <g -- Regards, Tom Ogilvy "Carolyn" wrote in message ... Thank you very much for you assistance Tom. My graphics person is doing cartwheels. Carolyn "Tom Ogilvy" wrote: Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Not IsNumeric(Mid(cell, i, 1)) Then With cell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub this superscripts everything that isn't a 1-9. -- Regards, Tom Ogilvy "Carolyn" wrote: Hello, I want to create a macro to test across a range of cells. In the below attempt at the code, I assumed that the user has highlighted the desired block. I want to test the contents of each cell, and to format superscript only aphabetic characters (not numeric, and certainly not the entire cell). The data I'm working with is primarily numeric, and any alphabetic characters are a statistics notation. It would greatly save our graphics folks time to have this macro that will superscript all alphabet characters while not touching the numeric characters. I cobbled together the below code based on code I found on F. David McRitchie's webpage (http://www.mvps.org/dmcritchie/excel/join.htm). It kinda works. But it only superscripts alpha characters the first cell in the highlighted range. I need it to superscript for all cells in the highlighted range. Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Mid(cell, i, 1) = "A" Then With ActiveCell.Characters(Start:=i, Length:=1).Font .Superscript = True End With End If Next i End If Next cell End Sub Thank you in advance for any assistance! Carolyn |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Here's the final macro that we've implemented. It could probably be
streamlined a bit more, but it's functional and meets our needs. Enjoy! Carolyn Option Explicit Sub SuperscriptLetters() Dim cell As Range Dim i As Integer On Error Resume Next 'in case nothing found For Each cell In Intersect(Selection, _ Selection.SpecialCells(xlConstants, xlTextValues)) If Len(cell) 0 Then For i = Len(cell) To 1 Step -1 If Not (IsNumeric(Mid(cell, i, 1)) Or Mid(cell, i, 1) = "%" Or Mid(cell, i, 1) = "$" Or Mid(cell, i, 1) = "." Or Mid(cell, i, 1) = ",") Then With cell.Characters(Start:=i, Length:=1).Font .Superscript = True ' .Bold = True End With End If Next i If Not (IsNumeric(cell)) Then With cell.Characters.Font ' .Bold = True .FontStyle = "Bold" End With End If End If Next cell End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Change relative to absolute references in a block of cells | Excel Discussion (Misc queries) | |||
Change font in portions of cell with many characters (1000's) | Excel Discussion (Misc queries) | |||
reference, test and change cell font. | Excel Programming | |||
macro to white out (to change a font in selected cells) | Excel Programming | |||
a script/macro to copy a block of cells next to specified cells | Excel Programming |