日期连接VBA

日期连接VBA,vba,excel,concatenation,Vba,Excel,Concatenation,我正在尝试连接,但它不起作用 Dim i As Integer For i = 2 To lastRow If Not IsDate(wsFinal.Cells(i, 17).Value) Then With wsFinal .Cells(i, 17).NumberFormat = "#" .Cells(i, 17).Value = "01/01/" & wsF

我正在尝试连接,但它不起作用

Dim i As Integer
          For i = 2 To lastRow
          If Not IsDate(wsFinal.Cells(i, 17).Value) Then
            With wsFinal
                .Cells(i, 17).NumberFormat = "#"
                .Cells(i, 17).Value = "01/01/" & wsFinal.Cells(i, 17).Value
            End With
       End If
       Next i

例如,如果我有一个存储为文本(1949)的数字,我试图将格式更改为不是日期的数字,以便可以循环。然后我想把那一年加到xxxx年1月1日。有谁能告诉我出了什么问题吗?

尝试使用
dd/mm/yyyy
Number格式表示数值

Dim i As Integer
For i = 2 To lastRow
    If Not IsDate(wsFinal.Cells(i, 17).Value) Then
        With wsFinal
            .Cells(i, 17).NumberFormat = "dd/mm/yyyy"
            .Cells(i, 17).Value = "01/01/" & wsFinal.Cells(i, 17).Value
        End With
    End If
Next i
还要确保
wsFinal.Cells(i,17)
实际返回一年

IsEmpty不是用于测试值的函数。它更多的是关于测试变量,如数组或对象,以查看它们是否已初始化

例如,

Dim iCtr 
Debug.Print IsEmpty(iCtr)   '<- Will Print True
iCtr = Null
Debug.Print IsEmpty(iCtr)   '<- Will Print False
Dim卢旺达问题国际法庭

调试。打印IsEmpty(iCtr)“尝试使用
dd/mm/yyyy
Number格式。”表示数值

Dim i As Integer
For i = 2 To lastRow
    If Not IsDate(wsFinal.Cells(i, 17).Value) Then
        With wsFinal
            .Cells(i, 17).NumberFormat = "dd/mm/yyyy"
            .Cells(i, 17).Value = "01/01/" & wsFinal.Cells(i, 17).Value
        End With
    End If
Next i
还要确保
wsFinal.Cells(i,17)
实际返回一年

IsEmpty不是用于测试值的函数。它更多的是关于测试变量,如数组或对象,以查看它们是否已初始化

例如,

Dim iCtr 
Debug.Print IsEmpty(iCtr)   '<- Will Print True
iCtr = Null
Debug.Print IsEmpty(iCtr)   '<- Will Print False
Dim卢旺达问题国际法庭

调试。打印IsEmpty(iCtr)“尝试使用
dd/mm/yyyy
Number格式。”表示数值

Dim i As Integer
For i = 2 To lastRow
    If Not IsDate(wsFinal.Cells(i, 17).Value) Then
        With wsFinal
            .Cells(i, 17).NumberFormat = "dd/mm/yyyy"
            .Cells(i, 17).Value = "01/01/" & wsFinal.Cells(i, 17).Value
        End With
    End If
Next i
还要确保
wsFinal.Cells(i,17)
实际返回一年

IsEmpty不是用于测试值的函数。它更多的是关于测试变量,如数组或对象,以查看它们是否已初始化

例如,

Dim iCtr 
Debug.Print IsEmpty(iCtr)   '<- Will Print True
iCtr = Null
Debug.Print IsEmpty(iCtr)   '<- Will Print False
Dim卢旺达问题国际法庭

调试。打印IsEmpty(iCtr)“尝试使用
dd/mm/yyyy
Number格式。”表示数值

Dim i As Integer
For i = 2 To lastRow
    If Not IsDate(wsFinal.Cells(i, 17).Value) Then
        With wsFinal
            .Cells(i, 17).NumberFormat = "dd/mm/yyyy"
            .Cells(i, 17).Value = "01/01/" & wsFinal.Cells(i, 17).Value
        End With
    End If
Next i
还要确保
wsFinal.Cells(i,17)
实际返回一年

IsEmpty不是用于测试值的函数。它更多的是关于测试变量,如数组或对象,以查看它们是否已初始化

例如,

Dim iCtr 
Debug.Print IsEmpty(iCtr)   '<- Will Print True
iCtr = Null
Debug.Print IsEmpty(iCtr)   '<- Will Print False
Dim卢旺达问题国际法庭

“你得到了什么结果?”?你需要什么样的结果?哦,它只会给所有空行添加1/1,这是一个问题。如果你显式地将单元格设置为数字格式(
#
),然后用日期覆盖该值,请设置日期格式
。Cells(i,17)。NumberFormat=“dd/mm/yyyy”
我更愿意使用如下内容:。Cells(i,17)。value=DateSerial(.Cells(I,17).Value,1,1)Excel应该能够自己将值解释为日期,因此可能不再需要设置格式。您得到了什么结果?您需要什么结果?哦,它只是将所有空行都添加了1/1。这是一个问题。您将单元格设置为数字格式(
#
)然后显式地用日期覆盖值,设置日期格式
.Cells(i,17).NumberFormat=“dd/mm/yyyy”
我更愿意使用如下内容:.Cells(i,17).value=DateSerial(.Cells(i,17).value,1,1)Excel应该能够自行将值解释为日期,因此可能不再需要设置格式。您得到了什么结果?您需要什么结果?哦,它只是将所有空行都添加了1/1。这是一个问题。您将单元格设置为数字格式(
#
)然后显式地用日期覆盖值,设置日期格式
.Cells(i,17).NumberFormat=“dd/mm/yyyy”
我更愿意使用如下内容:.Cells(i,17).value=DateSerial(.Cells(i,17).value,1,1)Excel应该能够自行将值解释为日期,因此可能不再需要设置格式。您得到了什么结果?您需要什么结果?哦,它只是将所有空行都添加了1/1。这是一个问题。您将单元格设置为数字格式(
#
)然后显式地用日期覆盖值,设置一个日期格式
.Cells(i,17).NumberFormat=“dd/mm/yyyy”
我更愿意使用如下内容:.Cells(i,17).value=DateSerial(.Cells(i,17).value,1,1)Excel应该能够将该值本身解释为一个日期,因此可能不再需要设置格式。如果不是IsDate(wsFinal.Cells(i,17).Value)和if Not IsEmpty(wsFinal.Cells(i,17).Value)这个statemetn是否有问题?if Not IsDate(wsFinal.Cells(i,17).Value)和if Not IsEmpty(wsFinal.Cells(i,17).Value)这个statemetn是否有问题?if Not IsDate(wsFinal.Cells(i,17).Value)和if Not IsEmpty(wsFinal.Cells(i,17).Value)此statemetn是否有问题?如果不是IsDate(wsFinal.Cells(i,17).Value),如果不是IsEmpty(wsFinal.Cells(i,17).Value),此statemetn是否有问题?