单元格显示的日期是6月11日,格式也是日期格式 为什么就是提示日期找不到呗
时间: 2024-03-25 22:38:06 浏览: 20
如果单元格中显示的日期格式正确,那么可能是因为代码中查找范围不正确导致的。请确保 `searchRange` 变量所指定的范围是包含了单元格 G7 至最后一列的所有单元格。
此外,如果您使用的是中文版 Excel,那么可能需要将代码中的 `What` 参数改为中文格式的日期。比如,如果单元格中显示的日期是 `6月11日`,那么代码中的 `What` 参数应该为 `"6月11日"`。具体代码如下:
```
'获取当前日期,并将其转换为中文日期格式
todayDate = Format(Date, "m月d日")
'查找今天日期所在的列号,如果不存在则给出提示并退出
If searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
MsgBox "今天的日期没有找到!"
Exit Sub
Else
lastCol = searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole).Column
End If
```
如果您的 Excel 是英文版,则无需将 `What` 参数改为中文格式。
相关问题
单元格日期为短日期格式
如果单元格日期为短日期格式,那么在代码中查找日期时,可以将 `LookAt` 参数设置为 `xlPart`,表示只要单元格中包含查询值的部分,即可被查找到。同时,还需要将查询值使用 `Format` 函数转换为短日期格式。具体代码如下:
```
'获取当前日期,并将其转换为短日期格式
todayDate = Format(Date, "yyyy/mm/dd")
'查找今天日期所在的列号,如果不存在则给出提示并退出
If searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlPart) Is Nothing Then
MsgBox "今天的日期没有找到!"
Exit Sub
Else
lastCol = searchRange.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlPart).Column
End If
```
请注意,这里将日期格式转换为了 `yyyy/mm/dd` 的格式,如果您的单元格日期格式不同,请将其调整为相应的格式。
单元格中是2023/6/11,显示的是6月11日
如果单元格中存储的是日期值,而不是文本值,那么可以将代码中的日期格式修改为 "yyyy/m/d",即:
```
'获取当前日期,并将其转换为日期格式
todayDate = Format(Date, "yyyy/m/d")
'查找今天日期所在的列号,如果不存在则给出提示并退出
If searchRange.EntireColumn.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole) Is Nothing Then
MsgBox "今天的日期没有找到!"
Exit Sub
Else
lastCol = searchRange.EntireColumn.Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole).Column
End If
```
请注意,这里将日期格式转换为了 "yyyy/m/d" 的格式,如果您的单元格日期格式不同,请将其调整为相应的格式。另外,由于单元格中存储的是日期值,而不是文本值,因此 `LookAt` 参数应该设置为 `xlWhole`,表示查找整个单元格中的值。