循环以获得VBA的结果

时间:2017-10-03 03:54:19

标签: excel vba

Image

代码:

ldiv_t divHour = div([comps hour],  12l);

我想要实现的是使用现有代码继续添加以获取列F 中的值以获取数量。

如果数量<&lt; 36,然后在“点”栏中1点;
如果数量是36-45,那么“点”栏中有2个点;
如果数量超过46,那么“点”列中的3个点。

2 个答案:

答案 0 :(得分:1)

试试这个公式

Option Explicit

Private Sub CommandButton1_Click()
    Dim ws As Worksheet, lr As Long

    Application.ScreenUpdating = False

    Set ws = ThisWorkbook.Sheets("Sheet1")
    lr = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

    With ws.Range("P2:P" & lr)
        .Formula = "=IF(COUNTIF(B$2:B2,B2)>1, 0, IF(F2<36, 1, IF(F2<46, 2, 3)))"
        .Value = .Value
    End With

    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

只需在代码

中的End with之前添加以下行
.Range("Q2").Formula = "=IF(AND(F2<36,F2>0),1,IF(AND(F2>=36,F2<=45),2,IF(F2>46,3,""Zero or Beyong 46"")))"
.Range("Q2").AutoFill Destination:=.Range("Q2:Q" & lastRow)
.Range("Q2:Q" & lastRow).Value = .Range("Q2:Q" & lastRow).Value