简体   繁体   English

Excel VBA IF或

[英]Excel VBA IF OR

Please help to run this formula if the cell C2 value is saturday 如果单元格C2值是星期六,请帮助运行此公式

Range("F2").Formula = "=IF(AND(D2>=TIME(9,16,0),D2<=TIME(11,59,0)),D2-TIME(9,0,0),IF(AND(D2>=TIME(14,16,0),D2>=TIME(12,00,0)),D2-TIME(14,0,0)*1,0))"

and if Cell C2 value is Sunday to Friday 如果单元格C2的值是星期日至星期五

Range("F2").Formula = "=IF(AND(D2>=TIME(8,16,0),D2<=TIME(10,30,0)),D2-TIME(8,0,0),IF(AND(D2>=TIME(12,16,0),D2>=TIME(10,31,0)),D2-TIME(12,0,0)*1,0))"

Until the last row which has data in the sheet. 直到工作表中有数据的最后一行。

In short check the value in C2, if = saturday formula 1 or formula 2. 简而言之,如果=星期六公式1或公式2,请检查C2中的值。

From C2 onwards Column C contains date. 从C2开始,列C包含日期。 eg 例如

05/03/2019

Sample Excel file Screenshot Excel文件样本截图 在此输入图像描述

Try this: 尝试这个:

Option Explicit
Sub Test()

    Dim i As Long

    For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
        If Weekday(Range("C" & i)) = 7 Then
            Range("F" & i).Formula = "=IF(AND(D" & i & ">=TIME(9,16,0),D" & i & "<=TIME(11,59,0)),D" & i & "-TIME(9,0,0),IF(AND(D" & i & ">=TIME(14,16,0),D" & i & ">=TIME(12,00,0)),D" & i & "-TIME(14,0,0)*1,0))"
        Else
            Range("F" & i).Formula = "=IF(AND(D" & i & ">=TIME(8,16,0),D" & i & "<=TIME(10,30,0)),D" & i & "-TIME(8,0,0),IF(AND(D" & i & ">=TIME(12,16,0),D" & i & ">=TIME(10,31,0)),D" & i & "-TIME(12,0,0)*1,0))"
        End If
    Next i

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM