Excel 如何更改具有过去日期的单元格的值
我试图只选择范围内过去的日期。所以在B列中,我需要所有从今天开始有日期的单元格都说日期已经过去了。我是一个初学者,已经尝试过这个代码,但它不工作Excel 如何更改具有过去日期的单元格的值,excel,ms-access,vba,Excel,Ms Access,Vba,我试图只选择范围内过去的日期。所以在B列中,我需要所有从今天开始有日期的单元格都说日期已经过去了。我是一个初学者,已经尝试过这个代码,但它不工作 Sub FilterDateBeforeToday() Set rrg = "dd/mm/yyyy" rrg = Range("b1:b2000") If rrg = Now - 1 Then ActiveCell.Value = "data already gone" End If End Sub 有人能帮我吗?只要B1:B2000都是日期
Sub FilterDateBeforeToday()
Set rrg = "dd/mm/yyyy"
rrg = Range("b1:b2000")
If rrg = Now - 1 Then
ActiveCell.Value = "data already gone"
End If
End Sub
有人能帮我吗?只要B1:B2000都是日期。您需要循环遍历每个单元格,并检查它是否是以前的日期
for i = 1 to 2000
if range("B" & i).value < now - 1 then range("B" & i).value = "Data already gone"
next
如果只是将其作为activecell.value,那么在运行宏之前处于活动状态的任何单元格都会发生更改 可以循环遍历范围中的每个单元格,然后检查日期是否已过
Public Sub RemovePastDates()
Dim rng As Range, cell As Range
Set rng = ThisWorkbook.Worksheets(1).Range("B1:B2000")
For Each cell In rng
If cell.Value <= Now - 1 Then
cell.Value = "Date has passed"
End If
Next cell
End Sub
请注意,我已经明确引用了工作簿和工作表,以确保修改了正确的工作表。Set rrg需要一个范围对象,而不是Set rrg=dd/mm/yyyy中的字符串
rrg=Rangeb1:b2000将是正确的,如果继续使用集合I,则使用[]符号,这对于单单元格赋值更为简单,例如集合rrg=[A1]
如果rrg=现在为-1,则。。。rrg是一个范围。。。您需要对该范围内的每个单元格重复If,例如,通过对每个单元格使用a。。。参见示例
ActiveCell.Value=数据已丢失。。。不管你的循环是什么。。。ActiveCell始终指当前光标位置的单元格
Sub FilterDateBeforeToday()
Dim MyRange As Range, MyCell As Range
Set MyRange = Range([B1], [B1000])
For Each MyCell In MyRange.Cells
' test if it contains a date ...
' on the 2nd pass we may have a string there already
If VarType(MyCell) = vbDate Then
' use Int() to compare against today 00:00 hrs
If MyCell < Int(Now()) Then
MyCell = "Date passed"
End If
End If
Next MyCell
End Sub
现在返回日期加时间。。。现在,一天的开始是删除了小数部分。。。所以所有比今天开始小的事情都过去了。。。这比
Sub FilterDateBeforeToday()
With Range("B1:B2000")
.AutoFilter 1, "<" & CLng(Date) '// Filter any dates before today
.SpecialCells(12).Value = "Date already gone" '// Replace visible cells with text.
End With
ActiveSheet.AutoFilterMode = False '// Remove filter.
End Sub
请注意此工作簿和ActiveWorkBook之间的细微差别宏运行时,但并不像我预期的那样。它没有从pastI了解问题的日期中选择所有日期。我工作表上的日期是公式的结果,那么它就不起作用了。如果我只写没有任何公式的日期,它是有效的。您知道如何调整代码以接受公式结果吗?公式是否真的会产生日期。。。或者更确切地说,在一个看起来像日期的文本中?它不能正常工作,没有选择今天之前的所有日期,那么您的日期实际上没有被格式化为日期。