Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
It could have something to do with pasting this into an email, but the
character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
Tom,
I mean an upside down ? is what is showing in my Excel file. When I run the top portion of the code on it, I get the associated Chinese or Japanese characters. Assuming that it is unicode, do you have a solution? Kevin Tom Ogilvy wrote: It could have something to do with pasting this into an email, but the character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
Tom,
When I use my code: Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub This sub does provide for me the associated Chinese, Japanese, Taiwanese, etc. characters returned into column B. The only thing is that this data resides everywhere within the worksheet. Do you know how to code the above subroutine into a For Next loop which checks every cell in the spreadsheet rather than having to rely upon a single cell like Range("A1").Value? It should also ignore those cells that do not have unicode within them. I hope this clarifies things some. Thanks much, Kevin Tom Ogilvy wrote: What are you trying to show. Perhaps all you need to do is apply a unicode font to the cell. As I said, a "¿" is char 191 in Arial, so it isn't unicode. for me, running this with "¿" in Cell A1 diplays the same thing and puts another "¿" in B1 Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Tom, I mean an upside down ? is what is showing in my Excel file. When I run the top portion of the code on it, I get the associated Chinese or Japanese characters. Assuming that it is unicode, do you have a solution? Kevin Tom Ogilvy wrote: It could have something to do with pasting this into an email, but the character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
Sub tester1() Dim rng as Range, cell as Range On error resume next set rng = Activesheet.Cells.SpecialCells(xlConstants,xlTextV alues) On error go to 0 if not rng is nothing then for each cell in rng counter = cell.Value strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest cell.offset(0,1).Value = strTest Next End if End Sub -- Regards, Tom Ogilvy Kevin Lyons wrote in message ... Tom, When I use my code: Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub This sub does provide for me the associated Chinese, Japanese, Taiwanese, etc. characters returned into column B. The only thing is that this data resides everywhere within the worksheet. Do you know how to code the above subroutine into a For Next loop which checks every cell in the spreadsheet rather than having to rely upon a single cell like Range("A1").Value? It should also ignore those cells that do not have unicode within them. I hope this clarifies things some. Thanks much, Kevin Tom Ogilvy wrote: What are you trying to show. Perhaps all you need to do is apply a unicode font to the cell. As I said, a "¿" is char 191 in Arial, so it isn't unicode. for me, running this with "¿" in Cell A1 diplays the same thing and puts another "¿" in B1 Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Tom, I mean an upside down ? is what is showing in my Excel file. When I run the top portion of the code on it, I get the associated Chinese or Japanese characters. Assuming that it is unicode, do you have a solution? Kevin Tom Ogilvy wrote: It could have something to do with pasting this into an email, but the character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
Tom,
That appeared to do the trick; however, for those cells that didn't contain unicode/multi-byte, it changed their values to unicode. Thoughts? Thanks much, Kevin Tom Ogilvy wrote: Sub tester1() Dim rng as Range, cell as Range On error resume next set rng = Activesheet.Cells.SpecialCells(xlConstants,xlTextV alues) On error go to 0 if not rng is nothing then for each cell in rng counter = cell.Value strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest cell.offset(0,1).Value = strTest Next End if End Sub -- Regards, Tom Ogilvy Kevin Lyons wrote in message ... Tom, When I use my code: Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub This sub does provide for me the associated Chinese, Japanese, Taiwanese, etc. characters returned into column B. The only thing is that this data resides everywhere within the worksheet. Do you know how to code the above subroutine into a For Next loop which checks every cell in the spreadsheet rather than having to rely upon a single cell like Range("A1").Value? It should also ignore those cells that do not have unicode within them. I hope this clarifies things some. Thanks much, Kevin Tom Ogilvy wrote: What are you trying to show. Perhaps all you need to do is apply a unicode font to the cell. As I said, a "¿" is char 191 in Arial, so it isn't unicode. for me, running this with "¿" in Cell A1 diplays the same thing and puts another "¿" in B1 Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Tom, I mean an upside down ? is what is showing in my Excel file. When I run the top portion of the code on it, I get the associated Chinese or Japanese characters. Assuming that it is unicode, do you have a solution? Kevin Tom Ogilvy wrote: It could have something to do with pasting this into an email, but the character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Unicode StrConv/Substitute routine...
Is there only one character in each cell:
Sub tester1() Dim rng as Range, cell as Range On error resume next set rng = Activesheet.Cells.SpecialCells(xlConstants,xlTextV alues) On error go to 0 if not rng is nothing then for each cell in rng counter = cell.Value if ascw(counter) 256 then strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest cell.offset(0,1).Value = strTest End if Next End if End Sub --- Other wise, I think you would have to loop? Sub tester1() Dim rng as Range, cell as Range Dim bUni as Boolean On error resume next set rng = Activesheet.Cells.SpecialCells(xlConstants,xlTextV alues) On error go to 0 if not rng is nothing then for each cell in rng counter = cell.Value if len(counter) < lenB(counter) then strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest cell.offset(0,1).Value = strTest End if Next End if End Sub If that doesn't work, I guess we would have to convert to a byte array and check the hi bytes. -- Regards, Tom Ogilvy Kevin Lyons wrote in message ... Tom, That appeared to do the trick; however, for those cells that didn't contain unicode/multi-byte, it changed their values to unicode. Thoughts? Thanks much, Kevin Tom Ogilvy wrote: Sub tester1() Dim rng as Range, cell as Range On error resume next set rng = Activesheet.Cells.SpecialCells(xlConstants,xlTextV alues) On error go to 0 if not rng is nothing then for each cell in rng counter = cell.Value strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest cell.offset(0,1).Value = strTest Next End if End Sub -- Regards, Tom Ogilvy Kevin Lyons wrote in message ... Tom, When I use my code: Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub This sub does provide for me the associated Chinese, Japanese, Taiwanese, etc. characters returned into column B. The only thing is that this data resides everywhere within the worksheet. Do you know how to code the above subroutine into a For Next loop which checks every cell in the spreadsheet rather than having to rely upon a single cell like Range("A1").Value? It should also ignore those cells that do not have unicode within them. I hope this clarifies things some. Thanks much, Kevin Tom Ogilvy wrote: What are you trying to show. Perhaps all you need to do is apply a unicode font to the cell. As I said, a "¿" is char 191 in Arial, so it isn't unicode. for me, running this with "¿" in Cell A1 diplays the same thing and puts another "¿" in B1 Sub tester1() counter = Range("A1").Value strTest = StrConv(counter, vbFromUnicode) MsgBox "strTest = " & strTest Range("B1").Value = strTest End Sub Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Tom, I mean an upside down ? is what is showing in my Excel file. When I run the top portion of the code on it, I get the associated Chinese or Japanese characters. Assuming that it is unicode, do you have a solution? Kevin Tom Ogilvy wrote: It could have something to do with pasting this into an email, but the character you show is char 191, which doesn't require unicode. Not sure what you mean by Language equivalent. Regards, Tom Ogilvy "Kevin Lyons" wrote in message ... Hello, I am trying to code a macro that will replace or substitute all "¿" unicode characters to their language equivalent using Application.Substitute and/or StrConv. I have written the below macro, but I am having trouble getting it to do as I expect. My thinking is to use the StrConv within the Application.Substitute code... The counter code that is commented works but for only a specific cell. What I would like is the entire workbook changed accordingly. Can someone assist? -------------------------- Sub fixUnicode() ' counter = Range("A1046").Value ' strTest = StrConv(counter, vbFromUnicode) ' MsgBox "strTest = " & strTest ' Range("B1046").Value = strTest For Each unicodeChar In ActiveSheet.UsedRange.Columns("A:AK").Cells Range(unicodeChar.Address) = Application.Substitute(unicodeChar.Value, "¿", StrConv("¿", vbFromUnicode)) unicodeChar.WrapText = True 'okfilename = Application.WorksheetFunction.Substitute(variousar tistsfilename, "-OK", "") 'newfilename = StrConv(okfilename, vbProperCase) Next ' For Each periodSlash In ActiveSheet.UsedRange.Columns("AG:AK").Cells ' Range(periodSlash.Address) = Application.Substitute(periodSlash.Value, _ ' "./", "." & Chr(10)) ' periodSlash.WrapText = True ' Next ' Selection.Replace What:="¿", Replacement:="?", LookAt:= _ ' xlPart, SearchOrder:=xlByRows, MatchCase:=False End Sub -------------------------- Thanks, Kevin |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
sub routine | Excel Discussion (Misc queries) | |||
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE.... max. limit 8 :( | Excel Discussion (Misc queries) | |||
Sort Routine | Excel Discussion (Misc queries) | |||
simplifying routine | New Users to Excel | |||
How to create a routine | Excel Discussion (Misc queries) |