我有一列日期格式为MM / DD / YYYY,并希望突出显示这些日期的具体范围。例如,突出显示日期的第一部分应该是从第一行一直到当前周五的所有内容。有时候这个日期不在表单中,所以我有一些额外的行检查是否没有列出该日期,它将检查当前的星期四。当使用.find方法搜索列时,我遇到了问题,并且即使我没有if语句,也有问题说我正在使用结尾。对我得到的错误感到困惑。
Dim friday As Date
Dim rng As Range
LastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Range("A:A, C:C, H:H, J:J").Delete
friday = Date + 8 - Weekday(Date, vbFriday)
Columns("C:C").Select
Set rng = Selection.Find(What:=friday, After:=Range("C1"),
LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, _
SearchFormat:=False)
If Not rng Is Nothing Then rng.Select
Else: friday = friday - 1
End If
答案 0 :(得分:0)
很难准确说出你要对代码做些什么。您正在使用.Find
查找friday
,但之后您似乎没有做任何事情。另外,尽可能避免使用.Select
。没有必要选择数据来对其执行某些操作。此代码将查看A列中的所有值,并突出显示等于friday
的日期:
Sub test()
Dim friday As Date
Dim sht_data As Worksheet
Dim i, LastRow as long
Set sht_data = ThisWorkbook.Sheets("Data") 'change to your sheet name
friday = Date + 8 - Weekday(Date, vbFriday) 'get date for comparison
With sht_data
LastRow = .Cells(Cells.Rows.Count, 1).End(xlUp).Row 'get last row
For i = 1 To LastRow 'assumes data starts in first row
If .Cells(i, 1).Value = friday Then
.Cells(i, 1).Interior.Color = RGB(255, 255, 0) 'highlight yellow
Else: End If
Next i
End With
End Sub
您可以使用它来突出显示数据范围(例如,更新If子句以检查范围)。