【发布时间】:2021-04-24 03:54:21
【问题描述】:
我即将使用 MS Excel 中的 VBA 从 YY-MM-DD 的文本格式到 DD-MM-YY 替换整行中的数据格式。我试图从一开始就删除撇号,但日期 21-04-02 被识别为 21.04.2002 而不是 02.04.2021,因此需要替换整行中每个 ell 中的字符。
在下面的代码中,我需要为每个单元格添加替换部分
Sub DateSub()
Dim strInput As String, strOutput As String
Dim LastRowcheck As Long, n1 As Long, rowschecktodelete As Long
LastRowcheck = Sheets("T1").Range("B" & Rows.Count).End(xlUp).Row
For n1 = 2 To LastRowcheck
With Worksheets("Sheet1").Cells(n1, 2)
'HERE SHOULD BE REPLACING PART
Sheets("T1").Cells(n1, 2).Select
Selection.NumberFormat = "yy-mm-dd"
End With
Next n1
Application.DisplayAlerts = False
End Sub
【问题讨论】:
-
一个公式可以解决这个问题。假设您的日期为
A1='21-04-02。将公式=DATE(2000+LEFT(A1,2),MID(A1,4,2),RIGHT(A1,2))放入单元格B1。如果您仍然想要 vba,那么在此处使用相同的逻辑 -
我相信这会起作用,但我是 VBA 新手,我想念一些使它正常工作的东西,我想用这种方式替换 B 列中的每个单元格。 Sheets("T1" ).Cells(n1, 2) = DATE(2000+LEFT(nl,2),MID(A1,4,2),RIGHT(nl,2))