Home |
Search |
Today's Posts |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi George,
To get back to 'General' you'd use: With oCell .NumberFormat = "@" .Value = "0" & .Value .NumberFormat = "" End With In other words, 'General' = nothing. I'm not aware of any particular resources on Excel number formats, other than what you can see via Format|Cells|Number, the examples in the Excel help files, and the snippets you can find doing web searches for 'Excel vba NumberFormat'. Cheers -- macropod [MVP - Microsoft Word] "G Lykos" wrote in message ... Thanks for the suggestion - setting NumberFormat to "@" allows the value to be set to the desired string value. Kind of nutty is that Excel converts the string <715: 1.2 to time; turns out that it doesn't care how many blanks are in the middle. Perhaps it just spots the colon and calls it a day. A follow-on question is: I can't find any information about NumberFormat. It appears that the "@" serves to position string data in Value before/after, so it's not shorthand for string type but more like an operator. I fooled with it a little to see if I could set the NumberFormat back to General after setting the string value, but Excel wouldn't accept NumberFormat = "General". I also tried to set the cell format to Time in foreground just to see what it looked like after the undesired conversion but Excel refused. Seems that the string value "715: 1.2" really craps up something inside, or else I badly misunderstand whatever it does. Anyhow, guidance on where to find information on NumberFormat would be appreciated if any sources come to mind. Thanks, George "macropod" wrote in message ... Hi George, What it's doing is converting the cell contents (715: 1.2) to a time value: 11:55:01 AM, actually. Where it heads off to from there I've no idea. You can prevent the conversion by formatting the target cell as text: With oCell .NumberFormat = "@" .Value = "0" & .Value End With Cheers -- macropod [MVP - Microsoft Word] "G Lykos" wrote in message ... Have run into a crazy problem. Have a macro that scans selected cells and, if the content is a string, does a string manipulation. However, have discovered that if the content is a certain type of string, VBA goes into orbit. Essence of situation: Select a series of cells in a pivot table. Cells format is General. Execute a loop: For each cell in selection, if typename(cell.value) = "String" then cell.value = "0" & cell.value. Typical string data is <533: Then Text. Code works fine to make this <0533: Then Text. However, when data is <715: 1.2, cell.value tests true as string, but cell.value = "0" & cell.value causes a cell value of <0.496541666666667 instead of the intended <0715: 1.2, is still format General, typename string, and the worksheet is wacked out and VBA code jumps out of the sub and starts executing in other subs that aren't even referenced in it. End up having to use Task Manager to kill Excel, then start over. So, what in the world is going on?? Win XP Pro, Office XP, both with all updates. Thanks in advance for any ideas! George |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How in the world!???? | Excel Worksheet Functions | |||
World Cup tipping | Excel Worksheet Functions | |||
World Cup Competition | Excel Discussion (Misc queries) | |||
World Cup | Excel Programming | |||
World Cup | Excel Programming |