Excel VBA Application.Match 在长时间和自定义格式之间
Excel VBA Application.Match between Long Time and Custom format
我这辈子都做不到。
我有一列 r
的时间值格式为 "yyyy-mm-dd hh:mm:ss.000 AM/PM"(此格式是可以为单元格选择的自定义格式之一)。
我还有一个单元格 c
,其中包含格式为“*hh:mm:ss”(第一种时间格式)的时间值。
我现在想查找 i
的 c.Value
行在 r
范围内。我使用
来做到这一点
i = Application.Match(c.Value, r, 1)
在这一行我得到“运行-time error '13': Type mismatch' 我的猜测是因为 r
中的单元格具有自定义格式,或者因为c.Value
.
中没有日期
我怎样才能让它工作?有没有其他方法可以让 c.Value
在 r
范围内的位置?
代码:
Sub test()
Dim r As Range
Set r = Range("A1:A10")
Dim c As Range
Set c = Range("B1")
Dim i As Integer
i = Application.Match(c.Value, r, 1) 'ERROR!
End Sub
已解决:
我不知道 Excel 将日期和时间视为数字,所以我在将 c.Value
保存为类型 Double
之前在函数中使用它时让它工作。
已解决:
我不知道 Excel 将日期和时间视为数字,所以我在将 c.Value 保存为 Double 类型之前在函数中使用它时得到它的工作。
我这辈子都做不到。
我有一列 r
的时间值格式为 "yyyy-mm-dd hh:mm:ss.000 AM/PM"(此格式是可以为单元格选择的自定义格式之一)。
我还有一个单元格 c
,其中包含格式为“*hh:mm:ss”(第一种时间格式)的时间值。
我现在想查找 i
的 c.Value
行在 r
范围内。我使用
i = Application.Match(c.Value, r, 1)
在这一行我得到“运行-time error '13': Type mismatch' 我的猜测是因为 r
中的单元格具有自定义格式,或者因为c.Value
.
我怎样才能让它工作?有没有其他方法可以让 c.Value
在 r
范围内的位置?
代码:
Sub test()
Dim r As Range
Set r = Range("A1:A10")
Dim c As Range
Set c = Range("B1")
Dim i As Integer
i = Application.Match(c.Value, r, 1) 'ERROR!
End Sub
已解决:
我不知道 Excel 将日期和时间视为数字,所以我在将 c.Value
保存为类型 Double
之前在函数中使用它时让它工作。
已解决:
我不知道 Excel 将日期和时间视为数字,所以我在将 c.Value 保存为 Double 类型之前在函数中使用它时得到它的工作。