我正在尝试确定最小日期及其相关行以便稍后在子程序中使用。
我遇到了一个错误,花了几个小时隔离问题并寻找解决方案,但没有成功。
我有一个电子表格,其中 B列
包含按顺序排列的一系列日期。 我可以找到最小日期(消息框正确返回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
行有什么问题?!?
B列
中这些日期上方和下方都有其他信息。我还将在用户窗体中使用dMinDate
作为默认值。当用户想要更改此日期范围的开始和结束日期时,他们将使用此表单。在这里,人们无法依靠正确地复制/插入具有公式的新行。 - J Hz