2017-06-29 1628 views
-1

我必須將導出數字的列存儲爲文本。VBA - 如何將單元格的值從文本轉換爲數字

enter image description here

我想這些數據轉換爲數字與此代碼。

Sub FormatColumns() 
Columns(9).NumberFormat = "0" 
Columns(10).NumberFormat = "0" 
End Sub 

它正確地完成任務(或者看起來如此),但我仍然無法與這些數據與數字的工作,但Excel中告訴我,它被存儲爲數字。

enter image description here

但是當我通過公式=ISTEXT()驗證它,它總是顯示我TRUE

你能不能幫我一下吧,好嗎?所有教程和建議,我已經在谷歌發現通過格式化細胞或=VALUE(),但對我來說VALUE溫控功能不工作,它讓我#VALUE

預先感謝您!

+1

它的逗號,必須''.' = 405,90''405.90' –

+0

哦daamn,什麼是假的我。謝謝! – Srpic

+0

你似乎沒有閱讀[這]( https://stackoverflow.com/help/tagging)。 – pnuts

回答

1

則必須更換 「」 ~~>」。「

Sub FormatColumns() 
With Columns("i:j") 
    .Replace ",", "." 
    .NumberFormat = "#,###.00" 
End With 
End Sub 
+0

太好了,謝謝! – Srpic

+0

@Srpic:謝謝! –

+0

@Srpic這適用於空間? (你寫*有空格和逗號,必須是正確的。*) – pnuts

0

通過宏

Sub macro() 
    Range("F:F").Select 'specify the range which suits your purpose 
    With Selection 
     Selection.NumberFormat = "General" 
     .Value = .Value 
    End With 
End Sub 
+0

不幸的是,在這種情況下這不起作用。有空格和逗號,必須是正確的。但非常感謝您的建議,因爲它在其他例如 – Srpic

0

HILIGHT轉換存儲爲文本的數字號碼,你的數字與 「修復」,然後運行:

Sub fixNumbers() 
    With Selection 
     .NumberFormat = "General" 
     .Value = .Value 
    End With 
End Sub 
+0

當我寫給@ Rick的帖子時,它在這種情況下不起作用,有空格和逗號,需要更正,但是非常感謝您的建議,因爲它在其他情況下有效 – Srpic

1

另一種解決方案是:

Sub Macro1() 

    Range("A:A").Select 'Range of values you need converted 

    For Each Cell In Selection 
    Cell.Value = (Cell.Value * 1) 
    Next 

End Sub 

非vba等效解決方案是在單元格中輸入「1」,複製該單元格,選擇要轉換的範圍編輯到數字,右鍵單擊並按Paste Special - > Multiply。

這將使該範圍內的號碼的所有值都不會更改格式。經過ISTEXT測試。

確保您的設置也匹配用逗號代替小數否則可能繼續有問題。

+0

嗯,聰明的解決方案,凡不需要VBA的,謝謝! – Srpic

1

檢查整個相關區域先設置爲數字格式。

選擇相關區域和做的白白(「空間」,以「留空」)全局替換。然後根據您的區域設置嘗試全局替換,.

下一個備用單元格中輸入1,複製單元格,選擇整個相關區域和粘貼,選項,乘。

如果不行開關.,和重複粘貼。

1

它的逗號,必須.所以405,90 = 405.90

相關問題