Mal*_*chi 54 excel vba excel-2007 excel-vba
我一直在寻找大约一个小时的Excel如何做到这一点.
我有一个从旧系统创建的Excel文件,我从SQL Server数据库中提取信息,我将把信息输回到SQL Server数据库,并希望日期匹配.
我尝试过创建一个自定义格式,但我不确定我是否正确地做了.我发现了几个地方,他们希望走另一条路mm/dd/yyyy来yyyymmdd ,但他们都没有帮助.
我不熟悉在任何Microsoft产品中使用VBA,否则我确信这将是一个简单的任务.
我有两个需要更改的单独列.
如何将整列从(float)yyyymmdd格式化 为(Date)mm/dd/yyyy
Dan*_*iel 71
您可以使用像这样的公式将值转换为日期,在单元格旁边:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
只需突出显示要修复的任何单元格并运行代码即可.
请注意,注释中提到的RJohnson,如果您选择的某个单元格为空,则此代码将出错.您可以在c.value上添加条件以跳过更新(如果它为空).
bar*_*ini 26
你有陈述的数据(水平)或COLUMNS(垂直)吗?
如果是后者,您可以使用"文本到列"功能来"原位"转换整列 - 为此:
选择列>数据>文本到列>下一步>下一步>从"列数据格式"下选择"日期",从下拉列表中选择"YMD">完成
....否则你可以使用公式转换
=TEXT(A1,"0000-00-00")+0
并以所需的日期格式格式化
这是一个裸骨版本:
假设您在Cell A1中以您描述的格式有一个日期.例如:19760210.
然后这个公式将给你你想要的日期:
=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)).
Run Code Online (Sandbox Code Playgroud)
在我的系统(Excel 2010)上,它适用于字符串或浮点数.
小智 6
转换dd/mm/yyyy为mm/dd/yyyy
=DATE(RIGHT(a1,4),MID(a1,4,2),LEFT(a1,2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
310982 次 |
| 最近记录: |