我将YYYYDM
转换为YYYYDDMM
时遇到了麻烦
例如:
200111
至20010101
或2001233
至20012303
…等等
格式类似于2001/1/1 I
除去了/
,现在我得到了200111
,但仍然需要它是20010101
。我什么都没想。
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets(2)
Dim k As Long
k = sh.Range("A1", sh.Range("A1").End(xlDown)).Rows.Count
For p = 2 To k
myString = sh.Cells(p, 1)
newString = Replace(myString, "/", "")
sh.Cells(p, 1).Value = newString
Next p
如果你们对此有任何解决方案,我将非常感谢。
答案 0 :(得分:0)
如安德鲁·莫蒂默(Andrew Mortimer)所言,在日期中保留/并使用格式函数。
format(datevalue("2001/1/1"),"yyyymmdd")
datevalue用于将字符串文字更改为日期。
? format(datevalue("2001/1/1"),"yyyymmdd")
20010101
答案 1 :(得分:0)
添加第二个答案的错误表格,但这是一个纯粹基于字符串的实现,而不是依靠Excel的内置处理。上面的评论中提到了此附加要求。
参数aDate是格式为“ 2001/1/1”的字符串。该函数的结果为“ 20010101”。
Public Function parseDate(aDate As String)
Dim components() As String
components = Split(aDate, "/")
components(0) = Right("0000" & components(0), 4)
components(1) = Right("00" & components(1), 2)
components(2) = Right("00" & components(2), 2)
parseDate = components(0) & components(1) & components(2)
End Function
在VBA IDE中进行测试:
' Sample date
? parseDate("2001/1/1")
20010101
' Date with multiple digits for month and day
? parseDate("2001/12/31")
20011231
' Invalid date, there is no checking for invalid dates
? parseDate("2001/88/99")
20018899