Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Hello,
I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
#2
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
This assumes that valid characters are upper and lower case letters, digits,
spaces, and commas: Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function UDFs are very easy to install and use: 1. ALT-F11 brings up the VBE window 2. ALT-I ALT-M opens a fresh module 3. paste the stuff in and close the VBE window If you save the workbook, the UDF will be saved with it. To use the UDF from the normal Excel window, just enter it like a normal Excel Function: =validd(A1) To remove the UDF: 1. bring up the VBE window as above 2. clear the code out 3. close the VBE window To learn more about UDFs, see: http://www.cpearson.com/excel/Writin...ionsInVBA.aspx -- Gary''s Student - gsnu200825 "Daren" wrote: Hello, I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
#3
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Thank you. I copied your code into a new workbook with the data that
actually in column Q. I copied/pasted from Function validd(r As Range) As Boolean all the way to End Function. I then saved the workbook. However, when I went to column T and entered =validd(Q2) [column Q is named Product Category Code] an error message appears that says Ambiguous name detected: validd. What might I have done wrong and how do I fix it. Thanks again! "Gary''s Student" wrote: This assumes that valid characters are upper and lower case letters, digits, spaces, and commas: Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function UDFs are very easy to install and use: 1. ALT-F11 brings up the VBE window 2. ALT-I ALT-M opens a fresh module 3. paste the stuff in and close the VBE window If you save the workbook, the UDF will be saved with it. To use the UDF from the normal Excel window, just enter it like a normal Excel Function: =validd(A1) To remove the UDF: 1. bring up the VBE window as above 2. clear the code out 3. close the VBE window To learn more about UDFs, see: http://www.cpearson.com/excel/Writin...ionsInVBA.aspx -- Gary''s Student - gsnu200825 "Daren" wrote: Hello, I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
#4
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
That message usually means that the function has been entered more than once
in VBA. Make sure that you have pasted one and only copy of the routine. -- Gary''s Student - gsnu200825 "Daren" wrote: Thank you. I copied your code into a new workbook with the data that actually in column Q. I copied/pasted from Function validd(r As Range) As Boolean all the way to End Function. I then saved the workbook. However, when I went to column T and entered =validd(Q2) [column Q is named Product Category Code] an error message appears that says Ambiguous name detected: validd. What might I have done wrong and how do I fix it. Thanks again! "Gary''s Student" wrote: This assumes that valid characters are upper and lower case letters, digits, spaces, and commas: Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function UDFs are very easy to install and use: 1. ALT-F11 brings up the VBE window 2. ALT-I ALT-M opens a fresh module 3. paste the stuff in and close the VBE window If you save the workbook, the UDF will be saved with it. To use the UDF from the normal Excel window, just enter it like a normal Excel Function: =validd(A1) To remove the UDF: 1. bring up the VBE window as above 2. clear the code out 3. close the VBE window To learn more about UDFs, see: http://www.cpearson.com/excel/Writin...ionsInVBA.aspx -- Gary''s Student - gsnu200825 "Daren" wrote: Hello, I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
#5
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Ok, I cleared it out and left just one UDF in. It worked! Will this UDF
also work for codes that have four characters, such as ZZ01? Thanks! "Gary''s Student" wrote: That message usually means that the function has been entered more than once in VBA. Make sure that you have pasted one and only copy of the routine. -- Gary''s Student - gsnu200825 "Daren" wrote: Thank you. I copied your code into a new workbook with the data that actually in column Q. I copied/pasted from Function validd(r As Range) As Boolean all the way to End Function. I then saved the workbook. However, when I went to column T and entered =validd(Q2) [column Q is named Product Category Code] an error message appears that says Ambiguous name detected: validd. What might I have done wrong and how do I fix it. Thanks again! "Gary''s Student" wrote: This assumes that valid characters are upper and lower case letters, digits, spaces, and commas: Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function UDFs are very easy to install and use: 1. ALT-F11 brings up the VBE window 2. ALT-I ALT-M opens a fresh module 3. paste the stuff in and close the VBE window If you save the workbook, the UDF will be saved with it. To use the UDF from the normal Excel window, just enter it like a normal Excel Function: =validd(A1) To remove the UDF: 1. bring up the VBE window as above 2. clear the code out 3. close the VBE window To learn more about UDFs, see: http://www.cpearson.com/excel/Writin...ionsInVBA.aspx -- Gary''s Student - gsnu200825 "Daren" wrote: Hello, I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
#6
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Also, I want to be able to run this as a macro in column S to look at column
Q where the product category codes are located. I wrote the following in a new module in Personal.xls: Sub CheckProductCategoryCodesForErrantCharacters() Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function End Sub What do I need to add to it and correct for it to run properly as a macro? Thanks! "Daren" wrote: Ok, I cleared it out and left just one UDF in. It worked! Will this UDF also work for codes that have four characters, such as ZZ01? Thanks! "Gary''s Student" wrote: That message usually means that the function has been entered more than once in VBA. Make sure that you have pasted one and only copy of the routine. -- Gary''s Student - gsnu200825 "Daren" wrote: Thank you. I copied your code into a new workbook with the data that actually in column Q. I copied/pasted from Function validd(r As Range) As Boolean all the way to End Function. I then saved the workbook. However, when I went to column T and entered =validd(Q2) [column Q is named Product Category Code] an error message appears that says Ambiguous name detected: validd. What might I have done wrong and how do I fix it. Thanks again! "Gary''s Student" wrote: This assumes that valid characters are upper and lower case letters, digits, spaces, and commas: Function validd(r As Range) As Boolean v = r.Value validd = True For i = 1 To Len(v) ch = Mid(v, i, 1) If ch Like "[0-9a-zA-Z]" Or ch = " " Or ch = "," Then Else validd = False Exit Function End If Next End Function UDFs are very easy to install and use: 1. ALT-F11 brings up the VBE window 2. ALT-I ALT-M opens a fresh module 3. paste the stuff in and close the VBE window If you save the workbook, the UDF will be saved with it. To use the UDF from the normal Excel window, just enter it like a normal Excel Function: =validd(A1) To remove the UDF: 1. bring up the VBE window as above 2. clear the code out 3. close the VBE window To learn more about UDFs, see: http://www.cpearson.com/excel/Writin...ionsInVBA.aspx -- Gary''s Student - gsnu200825 "Daren" wrote: Hello, I have a comma separated list with codes that is set up as G01, G02, G03, H01, Y02, B03, A06. There can be many many codes on each row, but they should only be separated by commas and spaces but no other characters. Is there a function I can use to show any unnecessary spaces and characters? Thanks. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Turning column contents into text list separated by a comma | Excel Discussion (Misc queries) | |||
How can I extract the first & last name separated by a comma | Excel Discussion (Misc queries) | |||
combine rows into one cell separated by comma | Excel Discussion (Misc queries) | |||
Fixing Comma Separated Values (.csv) | Excel Discussion (Misc queries) | |||
Going from column to comma separated list... | Excel Discussion (Misc queries) |