VBA:If语句用文本替换星期几

时间:2018-07-05 22:38:22

标签: excel vba excel-vba if-statement week-number

在我的工作簿“ isum”中,我有一个用周编号通过WEEKNUM公式(现在是第27周)得出的星期编号,该公式在X列中列出。该工作表称为“订单”,其中包含数据以查看哪些订单已延迟。我正在努力创建一个if / then语句,以便将X列(从X2开始)上所有小于27(当前52周中的当前周数)的周数标记为“后期”。我不确定如何将这个值更改为文本,但是困难的部分是确保每周更改一次,直到达到52。否则,“ Late”将不会改变。如果这没有任何意义,请告诉我,但这是我到目前为止的内容:

isum.Sheets("Orders").Activate Range("X2").Formula = "=WEEKNUM(RC[-9])" Range("X2", "X" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown 'Change statement to say "Late" and account for changing week numbers after every week If cell.Value < 27 Then cell.Value = "Late"

example of dilemma

2 个答案:

答案 0 :(得分:0)

尝试遍历范围

Dim col As Range: Set col = Worksheets("Orders").Range("X2:X" & <current week num>)
Dim i As Integer
For i = 1 To col.Rows.Count
    col.Cells(RowIndex:=i, ColumnIndex:="X").Value = "Late"
Next

http://codevba.com/excel/for_each_cell_in_range.htm

答案 1 :(得分:0)

我建议使用一种自定义数字格式,该数字显示csc.exe的小于27的周数,但保留底层的数字numerum值以用于将来的计算。可以通过条件格式设置规则来应用此规则,该规则将Weeknum公式的结果与当前weeknum进行比较,以查看每周的动态结果。

Late