如果...则声明在新位置显示结果

时间:2014-01-17 21:39:56

标签: excel vba excel-vba if-statement

我在工作簿中有多个工作表。我试图对D-G列进行总计,并将变量if..then语句应用于结果。

使用下面的代码提供了一个总数,但我无法弄清楚如何让“if”正常工作并显示结果。

Dim colm As Long, StartRow As Long
Dim EndCell As Range
Dim ws As Worksheet
StartRow = 3
For Each ws In Worksheets
    Set EndCell = ws.Cells(Rows.Count, "c").End(xlUp).Offset(1, 1)
    If EndCell.Row > StartRow Then
    EndCell.Resize(, 4).Formula = "=SUM(R" & StartRow & "C:R[-1]C)"
    End If
    If EndCell.Row >= 0 Then J3 = "6 Free Bottles"
    If EndCell.Row >= 1000 Then
    J2 = Formula = ((EndCell.Row) * (0.05))
    J3 = "5% Discount"
    ElseIf EndCell.Row >= 3000 Then
    Range(J2) = Formula = ((EndCell.Row) * (0.1))
    Range(J3) = "10% Discount"
    End If
Next ws

1 个答案:

答案 0 :(得分:0)

如果要更改单元格的值,则无法使用J3 = "6 Free Bottles"。 Excel认为J3是一个变量。使用Cells(3, "J").Value = "6 Free Bottles"。您也可以使用Range("J2").Value =Range(J2) =尝试将Range对象设置为等于某个东西,这将无法执行您想要的操作。

会导致问题的单独注意事项:您的某个End If对帐单中也遗漏了If