VBA:确定一周中的哪一天和时间约束并在范围内循环
我试图循环一个特定的范围,以确定日期+时间(每个单元格格式为dd/mm/yyyy HH:mm:ss)是否等于一周中的某一天,是否介于特定时间之间。可悲的是,我无法让它工作。你能给个建议吗 每个单元格都有不同的日期和时间,所以我猜时间=D中的每个单元格逐个循环VBA:确定一周中的哪一天和时间约束并在范围内循环,vba,Vba,我试图循环一个特定的范围,以确定日期+时间(每个单元格格式为dd/mm/yyyy HH:mm:ss)是否等于一周中的某一天,是否介于特定时间之间。可悲的是,我无法让它工作。你能给个建议吗 每个单元格都有不同的日期和时间,所以我猜时间=D中的每个单元格逐个循环 Sub looper() Dim Time As Date, cel As Range Time = ThisWorkbook.Sheets("Test1").Range("D1") For Ea
Sub looper()
Dim Time As Date, cel As Range
Time = ThisWorkbook.Sheets("Test1").Range("D1")
For Each cel In Range("D1:D26")
If IsEmpty(cel.Value) Then Exit For
If Weekday(ThisWorkbook.Sheets("Test1").Range("D1")) = 5 And Time < TimeValue("17:59:59") And Time > TimeValue("06:00:00") _
Then cel.Offset(0, 1).Value = "yes"
Next
End Sub
Sub-looper()
暗时间作为日期,cel作为范围
时间=此工作簿。工作表(“测试1”)。范围(“D1”)
对于范围内的每个cel(“D1:D26”)
如果为空(cel.Value),则退出
如果工作日(ThisWorkbook.Sheets(“Test1”)。范围(“D1”)=5,时间<时间值(“17:59:59”),时间>时间值(“06:00:00”)_
然后单元格偏移量(0,1)。Value=“是”
下一个
端接头
如果我正确理解了问题,可以按如下方式实施:
Option Explicit
Sub looper()
Dim cel As Range
Dim Time As Date, minTime As Date, maxTime As Date
minTime = TimeSerial(6, 0, 0)
maxTime = TimeSerial(17, 59, 59)
With ThisWorkbook.Sheets("Test1")
For Each cel In Range("D1:D26")
If IsEmpty(cel) Then Exit For
Time = TimeValue(cel) 'extract time
If Weekday(cel) = 5 And Time > minTime And Time < maxTime Then
cel.Offset(0, 1) = "yes"
End If
Next
End With
End Sub
选项显式
子活套()
暗淡的cel As范围
Dim Time作为日期,minTime作为日期,maxTime作为日期
minTime=时间序列(6,0,0)
maxTime=时间序列(17、59、59)
使用此工作簿.Sheets(“Test1”)
对于范围内的每个cel(“D1:D26”)
如果是空的(cel),则退出
时间=时间值(cel)'提取时间
如果工作日(cel)=5,时间>分钟时间,时间<最大时间,则
单元偏移量(0,1)=“是”
如果结束
下一个
以
端接头
如果我正确理解问题,可以按如下方式实施:
Option Explicit
Sub looper()
Dim cel As Range
Dim Time As Date, minTime As Date, maxTime As Date
minTime = TimeSerial(6, 0, 0)
maxTime = TimeSerial(17, 59, 59)
With ThisWorkbook.Sheets("Test1")
For Each cel In Range("D1:D26")
If IsEmpty(cel) Then Exit For
Time = TimeValue(cel) 'extract time
If Weekday(cel) = 5 And Time > minTime And Time < maxTime Then
cel.Offset(0, 1) = "yes"
End If
Next
End With
End Sub
选项显式
子活套()
暗淡的cel As范围
Dim Time作为日期,minTime作为日期,maxTime作为日期
minTime=时间序列(6,0,0)
maxTime=时间序列(17、59、59)
使用此工作簿.Sheets(“Test1”)
对于范围内的每个cel(“D1:D26”)
如果是空的(cel),则退出
时间=时间值(cel)'提取时间
如果工作日(cel)=5,时间>分钟时间,时间<最大时间,则
单元偏移量(0,1)=“是”
如果结束
下一个
以
端接头
试试这个,希望有帮助:)
子活套()
Dim Time As Date,cel As Range
对于范围内的每个cel(“D1:D26”)
时间=细胞值
如果不是空的(时间),那么
如果工作日(时间)=5,时间值(时间)TimeValue(“06:00:00”)_
然后单元格偏移量(0,1)。Value=“是”
如果结束
下一个
End Sub试试这个,希望对你有所帮助:)
子活套()
Dim Time As Date,cel As Range
对于范围内的每个cel(“D1:D26”)
时间=细胞值
如果不是空的(时间),那么
如果工作日(时间)=5,时间值(时间)TimeValue(“06:00:00”)_
然后单元格偏移量(0,1)。Value=“是”
如果结束
下一个
结束分精彩绝伦!太棒了!большое тебе спасибо