excel vba range.find 找不到日期
excel vba range.find not finding date
我正在尝试建立最小日期及其关联行以供以后在子例程中使用。
我遇到了一个错误,过去几个小时我一直在隔离问题并寻找解决方案,但无济于事。
我有一个电子表格,其中 column B
包含一系列按顺序排列的日期。我可以找到最短日期(消息框正确 returns 11/14/2015),但是当我尝试使用该日期值来识别行号时出现错误 91。这是我的代码:
Sub testing()
ThisWorkbook.Worksheets("Burn Curve Data").Activate
Dim rDateColumn As Range
Dim dMinDate As Date
Set rDateColumn = ActiveSheet.Range("B:B")
dMinDate = Application.WorksheetFunction.Min(rDateColumn)
MsgBox dMinDate
Dim rMinCell As Range
Dim intMinRow As Integer
Set rMinCell = rDateColumn.Find(dMinDate, LookIn:=xlValues, LookAt:=xlWhole)
intMinRow = rMinCell.Row
MsgBox intMinRow
End Sub
我尝试在 Set rMinCell
之后插入一个 If Not
语句并确定 range.find
没有找到日期。这是我用来识别错误的声明,但我删除了它以清理此帖子的代码。
If Not rMinCell is Nothing Then
intMinRow = rMinCell.Row
Else
MsgBox "error finding rMinCell"
End If
我也尝试将 dMinDate
重新保存到一个字符串中,然后在 range.find
中使用该字符串,但我遇到了同样的错误,就是找不到日期。
另一个可能相关也可能不相关的细微差别是此数据存在于工作表上的指定范围内。我的 range.find
行有什么问题?!?
正如评论中所讨论的那样,当列的格式不是 Date
.
时,问题就会出现
要通过代码执行此操作,您可以在设置 rDateColumn
变量后添加此行:
rDateColumn.NumberFormat = "m/d/yyyy"
这应该将列的格式设置为日期,并且您的 Find
方法应该可以正常工作。
或者,您可以 select 列,单击 'Format Cells',然后确保 'Date' 在类别下 select。
我正在尝试建立最小日期及其关联行以供以后在子例程中使用。
我遇到了一个错误,过去几个小时我一直在隔离问题并寻找解决方案,但无济于事。
我有一个电子表格,其中 column B
包含一系列按顺序排列的日期。我可以找到最短日期(消息框正确 returns 11/14/2015),但是当我尝试使用该日期值来识别行号时出现错误 91。这是我的代码:
Sub testing()
ThisWorkbook.Worksheets("Burn Curve Data").Activate
Dim rDateColumn As Range
Dim dMinDate As Date
Set rDateColumn = ActiveSheet.Range("B:B")
dMinDate = Application.WorksheetFunction.Min(rDateColumn)
MsgBox dMinDate
Dim rMinCell As Range
Dim intMinRow As Integer
Set rMinCell = rDateColumn.Find(dMinDate, LookIn:=xlValues, LookAt:=xlWhole)
intMinRow = rMinCell.Row
MsgBox intMinRow
End Sub
我尝试在 Set rMinCell
之后插入一个 If Not
语句并确定 range.find
没有找到日期。这是我用来识别错误的声明,但我删除了它以清理此帖子的代码。
If Not rMinCell is Nothing Then
intMinRow = rMinCell.Row
Else
MsgBox "error finding rMinCell"
End If
我也尝试将 dMinDate
重新保存到一个字符串中,然后在 range.find
中使用该字符串,但我遇到了同样的错误,就是找不到日期。
另一个可能相关也可能不相关的细微差别是此数据存在于工作表上的指定范围内。我的 range.find
行有什么问题?!?
正如评论中所讨论的那样,当列的格式不是 Date
.
要通过代码执行此操作,您可以在设置 rDateColumn
变量后添加此行:
rDateColumn.NumberFormat = "m/d/yyyy"
这应该将列的格式设置为日期,并且您的 Find
方法应该可以正常工作。
或者,您可以 select 列,单击 'Format Cells',然后确保 'Date' 在类别下 select。