![](/img/trans.png)
[英]Changing column of date values from YYYYMMDD to MM/DD/YYYY in VBA
[英]Excel Date Conversion from yyyymmdd to mm/dd/yyyy
我一直在尋找關於如何在 Excel 中執行此操作的大約一個小時。
我有一個從舊系統創建的 Excel 文件,我正在從 SQL Server 數據庫中提取信息,我會將信息輸入回 SQL Server 數據庫並希望日期匹配。
我曾嘗試創建自定義格式,但我不確定我是否正確地做到了。 我找到了幾個地方,他們想從mm/dd/yyyy
轉到yyyymmdd
但它們沒有幫助。
我不熟悉在任何 Microsoft 產品中使用 VBA,否則我確信這將是一個簡單的任務。
我有兩個單獨的列需要更改。
如何將整列從(float)
yyyymmdd格式化為(Date)
mm/dd/yyyy
您可以使用像這樣的公式將值轉換為日期,在單元格旁邊:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
其中 A1 是您需要轉換的字段。
或者,您可以在 VBA 中使用此代碼:
Sub ConvertYYYYMMDDToDate()
Dim c As Range
For Each c In Selection.Cells
c.Value = DateSerial(Left(c.Value, 4), Mid(c.Value, 5, 2), Right(c.Value, 2))
'Following line added only to enforce the format.
c.NumberFormat = "mm/dd/yyyy"
Next
End Sub
只需突出顯示您想要修復的任何單元格並運行代碼。
請注意,正如評論中提到的RJohnson ,如果您選擇的單元格之一為空,則此代碼將出錯。 如果 c.value 為空,您可以在 c.value 上添加條件以跳過更新。
您是否有您所說的數據行(水平)或 COLUMNS(垂直)?
如果是后者,您可以使用“文本到列”功能來“原位”轉換整列 - 這樣做:
選擇列>數據>文本到列>下一步>下一步>選擇“列數據格式”下的“日期”和下拉菜單中的“YMD”>完成
....否則您可以使用公式進行轉換
=TEXT(A1,"0000-00-00")+0
並以所需的日期格式格式化
這是一個裸骨版本:
假設您在單元格 A1 中有您描述的格式的日期。 例如: 19760210
。
然后這個公式會給你你想要的日期:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
在我的系統 (Excel 2010) 上,它適用於字符串或浮點數。
用於將dd/mm/yyyy
轉換為mm/dd/yyyy
=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
找到了另一個(手動) 答案,對我來說效果很好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.