Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Strange 'Print' behaviour'
I'm using Excel as a flat database for my website data file, and a VBA
routine to output the html pages for me. So far, so good. I came across some strange behaviour last night, which I had to use an ugly hack to get around - the weirdness is demonstrated by: Sub printError() Dim MyNumber As Integer MyNumber = 3*7 Debug.Print "This thing is "; MyNumber; "mm long" End Sub This will print "This thing is 21 mm long". In the code I'm outputting, the space between the number and the following letters is invalid. I've since discovered that declaring MyNumber as a string will still allow me to set it to the value of a calculation(?!), and that the space is then omitted. Any ideas why this would be? TIA Nik |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Strange 'Print' behaviour'
Yes. A space is placed on each end of a number as part of its inherent
formatting. If you look closely, if you just debug.print a number, it starts in the second column. Debug.Print 3 ' starts in second column. -- Regards, Tom Ogilvy "Nik" wrote in message ... I'm using Excel as a flat database for my website data file, and a VBA routine to output the html pages for me. So far, so good. I came across some strange behaviour last night, which I had to use an ugly hack to get around - the weirdness is demonstrated by: Sub printError() Dim MyNumber As Integer MyNumber = 3*7 Debug.Print "This thing is "; MyNumber; "mm long" End Sub This will print "This thing is 21 mm long". In the code I'm outputting, the space between the number and the following letters is invalid. I've since discovered that declaring MyNumber as a string will still allow me to set it to the value of a calculation(?!), and that the space is then omitted. Any ideas why this would be? TIA Nik |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Strange 'Print' behaviour'
Tom Ogilvy wrote:
Yes. A space is placed on each end of a number as part of its inherent formatting. If you look closely, if you just debug.print a number, it starts in the second column. Debug.Print 3 ' starts in second column. So it does - I hadn't noticed the double space before the number in my example. I don't suppose that there is any way to over-ride this that is more elegant than declaring what should be an integer as a string? Nik |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Strange 'Print' behaviour'
Sub printError()
Dim MyNumber As Long MyNumber = 3*7 Debug.Print "This thing is " & format(MyNumber,"#") & "mm long" End Sub You save nothing using Integer instead of Long - in fact, I believe internally, VBA converts it to long to work with it. -- Regards, Tom Ogilvy "Nik" wrote in message ... Tom Ogilvy wrote: Yes. A space is placed on each end of a number as part of its inherent formatting. If you look closely, if you just debug.print a number, it starts in the second column. Debug.Print 3 ' starts in second column. So it does - I hadn't noticed the double space before the number in my example. I don't suppose that there is any way to over-ride this that is more elegant than declaring what should be an integer as a string? Nik |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Strange if(***) behaviour? | Excel Discussion (Misc queries) | |||
Strange VBA Behaviour | Excel Programming | |||
(Leo) Strange print to file behaviour | Excel Programming | |||
Strange behaviour | Excel Worksheet Functions | |||
Strange behaviour in VBA Help | Excel Programming |