Andrew Douglas Pitonyak <andrew <at> pitonyak.org> writes:

> Can you email me a Calc document with the macro that demonstrates the 
> problem? For example, create a document that has a value in one cell 
> that is not properly returned by getValue(). Can you then write the 
> simple macro that fails to return the small value?
> 
> I created a sheet that has the value "0.00001" in cell A1 on the first 
> sheet. I then used the following macro:
...
>   Print d
>   Print Format(d, "0.#######")
> End Sub
> 
> The first print statement prints 1e-05. The second print statement 
> prints "0.00001". The cell itself shows the value "0" unless I place the 
> cursor into the cell or change the number format associated with the cell.
> 
Thanks.  For what it's worth, I'll send the document.  I did not know about
"Print Format(...)"  The sheet I prepared to send you contains 0.075 in A1.  The
cell was formatted for "0.000" and correctly showed the value "0.075".  My
macro, pretty well the same as yours, returned "7.5E-02" for the first print
command.  The next (to me, new) command Print Format(dValue, "0.###") returned
"0.075".  That's more than I've achieved previously but there may still be a
problem when you try to do anything with the value other than print or include
it in a message.  As an example I tried, hastily, to write a macro to set the
value of B1 by reference to the value obtained from A1, thus:
Dim dValue as Double, oCell as Object, oDoc as Object, oSelect as Object, _
        oSheet as Object, tCellAddress, tRangeAddress

        oDoc = ThisComponent
        oSelect = oDoc.CurrentSelection
        oSheet = oDoc.Sheets.getByIndex ( 0 )
        dValue = oSelect.getValue
'       Print dValue - got me 75E-02
'       Print Format(dValue, "0.###") - this worked
        oCell = oSheet.getCellbyPosition ( 1, 0 )
        oCell.NumberFormat = 107
        oCell.setValue ( dValue )
'       oCell.setValue ( Format (dValue, "0.###") ) tried and failed

End Sub

The number format 107 is "0.000".  The macro resulted in the value 0.000 in cell
B1.  Perhaps it is necessary to create a new number format each time you want to
enter or otherwise manipulate a value, but at the time I was writing my (real)
macros, it was a darn sight easier to use getString.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to