Excel 如何搜索包含特定日期的单元格?
正在尝试搜索特定日期的单元格位置 我在dd-mm-yy表单中有一系列日期,需要能够找到从下拉菜单中选择的日期的单元格位置。我使用的是一个标准的Range.Find函数,用于搜索非日期,但搜索日期时返回错误91:对象变量或未设置块变量 在运行该程序之前,我曾尝试通过excel中的format单元格和a=text函数将日期转换为文本格式,但仍然不起作用 我在某个地方读到关于将日期转换为与Excel使用的内部格式(mm/dd/yy)匹配的内容,但这并没有什么区别Excel 如何搜索包含特定日期的单元格?,excel,vba,Excel,Vba,正在尝试搜索特定日期的单元格位置 我在dd-mm-yy表单中有一系列日期,需要能够找到从下拉菜单中选择的日期的单元格位置。我使用的是一个标准的Range.Find函数,用于搜索非日期,但搜索日期时返回错误91:对象变量或未设置块变量 在运行该程序之前,我曾尝试通过excel中的format单元格和a=text函数将日期转换为文本格式,但仍然不起作用 我在某个地方读到关于将日期转换为与Excel使用的内部格式(mm/dd/yy)匹配的内容,但这并没有什么区别 'Date to be searche
'Date to be searched
Set SDate = Sheets("Data").Range("F1")
'find function
Set oRange = Sheets("Planning").Range("A1:A50").Find(What:=Sdate, lookat:=xlWhole)
'Return Address
MsgBox oRange.Address
我希望能够搜索一个单元格位置,并以A1形式或(1,1)形式给出一个单元格位置。两者都会起作用 将
.Find
与日期值相结合有点棘手,这是您自己发现的
试试下面的方法
Sub finddate()
'Date to be searched
Set SDate = Sheets("Data").Range("F1")
'find function
Set oRange = Sheets("Planning").Range("A1:A50").Find(What:=DateValue(Sdate), lookin:=xlFormulas)
'Return Address
MsgBox oRange.Address
End Sub
另一种方法是:
Sub findDate()
Dim sht As Worksheet
Set sht = ThisWorkbook.Worksheets("The name of your Worksheet")
Dim dateToFind As Date
dateToFind = sht.Range("F1").Value
Dim cell As Range
For Each cell In sht.Range("datesRng").Cells 'I am using a named range which contains the dates but you can use A1:A50 instead
If cell.Value = dateToFind Then
MsgBox cell.Address
End If
Next cell
End Sub
您已经合并了单元格,这就是为什么它返回
Nothing
,请尝试:
Sub finddate()
Set Sdate = Sheets("Data").Range("F1")
Set SearchRange = Sheets("Planning").Range("A1:A50")
If Not IsError(Application.Match(Sdate, SearchRange, 0)) Then
Set oRange = Cells(Application.Match(Sdate, SearchRange, 0), 1)
MsgBox oRange.Address
End If
End Sub
如果您的
F1
和查找范围都被格式化为日期,它应该可以正常工作。谢谢,我已经尝试过了,但是我的一些单元格被合并了,这导致它无法工作啊!VBA噩梦;)为了VBA,我投票反对合并单元格!如果合并的单元格仅垂直合并,则Range.Find
也会在合并的单元格中查找。但如果它们是水平或二维合并的,则只有SearchOrder:=xlByRows
在它们中找到,而SearchOrder:=xlByColumns
没有。如果省略此参数,则最后使用的参数已就位。(这种行为似乎是一个bug)。感谢您的快速响应,我已经让它工作了@保格莱德会很高兴的!我已将DateFormat
更改为DateValue
。如果这对你有帮助,请不要忘记接受答案