View Single Post
  #2   Report Post  
Sepeteus Jedermann Sepeteus Jedermann is offline
Junior Member
 
Posts: 18
Default

Quote:
Originally Posted by LarryAP View Post
I already have a workaround, but would like to understand why this was a problem (Excel 2007):

I have VBA code that is supposed to copy a row of numeric values into a corresponding range of cells in another worksheet.

Range("D13:P13").Cells(x).Value = cel.Offset(0, x).Value

I just found, though, that when one of the cells contains .0010, it comes across as .0000.

Both cells have the same number format, so I am nonplussed at this. My workaround, which solved the problem, is:

Range("D13:P13").Cells(x).Value = Val(CStr(cel.Offset(0, x).Value))

Somehow, casting the original value to a string, then back to a numeric value, makes it come out as .0010 as it should.

WHY was it not coming across correctly in the first place?
Hi,

I have Excel 2007 and cell formatting is general at whole worksheet.
I added some numbers to D11:D15 ( smallest was 0,00000005 ).
Then i selected continuos area, horizontal or vertical containing 5 cells.
After that i ran following vba-code. It worked ok.

All decimals at destination area was just like sourcearea ( D11:D15).
I think that excel make calculations with 15 decimals, always.

Sub TestSmallDecimal()

For x = 1 To 5
Selection.Cells(x).Value = Range("D10").Offset(x, 0).Value
Next x

End Sub

I dont know the reason why Excel works at your worksheet as you said, but
this exsample worked when I tried to reply your situation.

***