2013-01-23 13 views
0

我有一個電子表格,並且我寫了一個使用電子表格中某些值輸出文本文件的宏。除了一個問題,一切正常:Excel VBA十進制數字在文本輸出中轉換爲整數

如果我有一個像15.0這樣的浮點數,它將在輸出文本文件中顯示爲整數15,不帶小數點。如果小數點後的數字不是零,我不會觀察到同樣的問題,例如,15.1寫成15.1;那裏沒有問題。

我不知道是否有某種命令或屬性,這將強制所有的數字被寫入輸出文件作爲浮動數字?

這是我寫數字到文本文件的行。 WeightList(i)和SpacingList(i)是字符串數組,用於存儲從電子表格中收集的數字。

Print #1, Chr(9); "<truck axleW=" & Chr(34) & _ 
      WeightList(i) & Chr(34) & " axleS=" & _ 
      Chr(34) & SpacingList(i) & Chr(34) & "></truck>" 

謝謝!

編輯:這就是數字轉換爲字符串行了,我嘗試使用format命令,但這並沒有幫助:

WeightList(i) = Format("0.0", Truck(i).AxleWeights(i)) 

EDIT2:代碼工作現在,改變的訂單後格式命令中的參數。有關詳細信息,請參閱接受的答案。

+0

請編輯您的questino您存儲收集到的數字,包括代碼字符串數組;那就是必須修補的地方。 –

+0

對於Excel而言,15和15.0之間沒有區別。您可以嘗試使用類似'...&Format(WeightList(i),「#。0 ###」)&...' - 要使用的格式字符串將取決於您的輸出內容。 –

回答

3

您可以使用format(value,"0.0")轉換爲具有所需信號的字符串。

編輯 - 對不起已經本末倒置...

+0

不幸的是它不起作用,或者我可能已經搞亂了它應該被使用的方式。 'WeightList(i)= Format(「0.0」,Truck(i).AxleWeights(1))'是我嘗試根據您的建議將實際數字轉換爲字符串的行。原始問題中上述代碼的輸出仍然給出整數。 – marillion

+0

@marillion - 當我第一次發佈這個消息時,我的訂單已經顛倒過來了......大約15秒後將它改爲正確的順序。你只是錯過了...'WeightList(i)= Format(Truck(i).AxleWeights(1),「0.0」)'應該這樣做; WeightList被聲明爲一個字符串數組? – Floris

+0

它現在有效。有趣的是,它沒有給出任何錯誤時,我已經順序切換:)是的,WeightList是一個字符串數組,但現在的代碼工作,感謝你! – marillion

相關問題