2015-04-27 105 views
-1

我在我的Excel電子表格中有列日期。生成日期時,格式爲2015/27/04。但該列已被格式化爲「常規」。當我嘗試將格式更改爲「日期」時,我得到的輸出爲「########」。有誰知道這個問題是什麼?Excel日期類型

+1

您是否試過讓柱子變寬? – LittleBobbyTables

+2

如果它們看起來像一般格式,它們不是真正的日期 - 它們是存儲的文本。 (這不會讓我感到驚訝,因爲這不是一種典型的日期格式。) – Rory

+0

外部系統生成Excel電子表格中的日期。是的,我試圖擴大那個不是問題的專欄。 – James

回答

0

Image tutorial how change format

Video tutorial how change format

如果只有一個單元格,點擊它。 如果它們位於列中,請在列上方的字母上單擊鼠標左鍵以選擇並格式化整個列。 如果它們在一行中,請在該行旁邊的數字上單擊鼠標左鍵以選中並使用突出顯示的部分(或單元格)進行格式化以調出編輯菜單。選擇屏幕頂部欄上的「格式」。從下拉菜單中選擇「Cells ...」。

+0

我也嘗試了以上以及 – James

0

選擇要更改並運行此短宏小區:

Sub Formatter() 
    Dim r As Range 

    For Each r In Selection 
     ary = Split(r.Text, "/") 
     If UBound(ary) = 2 Then 
      r.Clear 
      r.Value = DateSerial(ary(0), ary(2), ary(1)) 
      r.NumberFormat = "yyyy/dd/mm" 
     End If 
    Next r 
End Sub 

編輯#1:

從另一個子內使用此功能,我們必須修改格式化

Sub Formatter(rng As Range) 
    Dim r As Range 

    For Each r In rng 
     ary = Split(r.Text, "/") 
     If UBound(ary) = 2 Then 
      r.Clear 
      r.Value = DateSerial(ary(0), ary(2), ary(1)) 
      r.NumberFormat = "yyyy/dd/mm" 
     End If 
    Next r 
End Sub 

,並提供一個調用程序:

Sub MAIN() 
    Dim rng As Range 
    Set rng = Sheets("Fund Trend").Range("A11:A60") 
    Call Formatter(rng) 
End Sub 
+0

以上代碼不成功 – James

+0

@James你看到了什麼? –

+0

@ Gray'sStudent我遇到未設置的塊的錯誤。我正在使用此範圍表(「基金趨勢」)。範圍(「A11:A60」) – James