如何變更資料庫匯入表格中儲存格的數字格式?

如何變更資料庫匯入表格中儲存格的數字格式?

我有一張看起來像這樣的表 -

    A  |     B      | C
   ----------------------
    2  |  Okay      |  0
    3  |  Not okay  | 0

單元格C3有綠色的錯誤指針,並顯示“此單元格中的數字格式為文字或前面帶有撇號”,當然它是左對齊的。

C2當我顯示儲存格和 的格式時C3,它們都顯示為「常規」。

當我使用VBA檢查“NumberFormat”時,兩者都顯示為“General”。

順便說一句,我正在使用 Office 2010。

我想透過使用VBA 程式碼將格式從文字更改為常規來整理此問題(這種情況發生在多個工作表中的數十個單元格中),但是如果它認為相關單元格已格式化為常規格式,我該怎麼做?

答案1

當 Excel 認為數字儲存為文字(即使它說不是,即使您將格式變更為數字)時,可能會發生這種情況,因為它在另一端編碼錯誤。

對於以文字形式儲存的數字,一個非常簡單的解決方法是添加一個額外的列,其中包含將數字轉換為數字的公式。

=$C2*1

只需將其拖下來,然後引用即可。如果您正在使用即時連接的表,則此列位於表末尾將意味著公式範圍將隨著資料範圍而擴展。


當然,使用 VBA,您可以運行一個循環,遍歷數據,並用該公式的結果替換列中的每個值。

答案2

下面是一個可以解決這個問題的 VBA 片段。

Sub FixTextFormattedNumbers()
Dim s As Worksheet, r As Range
'Set target sheet and range
Set s = Sheets("Sheet1")
Set r = s.Range("A1:A10")

For Each c In r
    On Error Resume Next
    c.Value = CDbl(c.Value)
Next c
End Sub

錯誤處理只是為了防止您在指定範圍內有實際文字。

答案3

複製貼上或匯入資料時經常會發生這種情況。如果它是一整列,修復它的最佳方法是基本上重新匯入該列,並更好地控制 Excel 對資料類型的假設。

這樣做的方法是:

  1. 突出顯示存在此問題的專欄

  2. 選擇Data->Text To Columns

  3. Finish一下(預設適用於這種情況 - 它們是“分隔”->“製表符”->“常規(格式)”)。如果您必須執行相反的操作(重新匯入數字但強制將它們視為文字),您可以將第三個選項變更為文字

相關內容