Excel 我试图为一个特定的单元格区域编写一个if语句,但我得到了应用于该区域的相同公式。

Excel 我试图为一个特定的单元格区域编写一个if语句,但我得到了应用于该区域的相同公式。,excel,if-statement,vba,Excel,If Statement,Vba,下面是一个简单的例子。要查看它的工作情况,请在A列的前10行中输入1到10,然后运行它 我使用了formula1c1,因为它允许您根据变量轻松循环和修改公式。如您所见,请确保“R1C1”是作为单元格的完整字符串引用输入的,并且它可以由几个字符串和变量组成“R”&rowNumber&“C”&columnNumber Sub RebateCalculation() For x = 2 To 400 If Cells(x, 29) = (-0.2) Then

下面是一个简单的例子。要查看它的工作情况,请在A列的前10行中输入1到10,然后运行它

我使用了
formula1c1
,因为它允许您根据变量轻松循环和修改公式。如您所见,请确保“R1C1”是作为单元格的完整字符串引用输入的,并且它可以由几个字符串和变量组成
“R”&rowNumber&“C”&columnNumber

Sub RebateCalculation()

    For x = 2 To 400 
        If Cells(x, 29) = (-0.2) Then
            Range(Cells(x, 25), Cells(x, 25)).Formula = "=0.06*Q4-Q4+O4/M4"
        ElseIf Cells(x, 29) = (-0.333333333333333) Then
            Range(Cells(x, 25), Cells(x, 25)).Formula = "=0.05*Q4-Q4+O4/M4"
        ElseIf Cells(x, 29) = (-1.4) Then
            Range(Cells(x, 25), Cells(x, 25)).Formula = "0.05 * Q4 - Q4 + O4 / M4"
        Else
            Cells(x, 25) = ""
        End If
    Next x

End Sub

另一个选项是as,而不是将所有三个公式指定为固定字符串“=0.06*Q4-Q4+Q4/M4”try“=0.06*”&Cell&“-”&Cell&“+”&Cell&“/”&cell2,在每个for循环中递增单元格字符串

所有公式似乎都是相同的。您当前已将所有三个公式指定为固定字符串
“=0.06*Q4-Q4+Q4/M4”
试试
“=0.06*”&Cell&“-”&Cell&“+”&Cell&“/”&cell2
在每个循环中增加单元格字符串,以表示非常感谢。这个公式结构非常有效。我添加了一些修复,但这正是我所需要的。非常感谢。您输入的新公式是:“=(0.06*”&单元格(x,17)&“-”&单元格(x,17)&“+”&单元格(x,15)&“&”/“&”&单元格(x,13)。@user3718442接受答案,如果它有助于您解决问题(我在答案选项中包含了我的评论)
Sub addEquation()

For i = 1 To 10

    If Cells(i, 1).Value = 1 Then
        Cells(i, 2).FormulaR1C1 = "=10*R" & i & "C1"
    Else
        Cells(i, 2).FormulaR1C1 = "=500*R" & i & "C1"
    End If

Next i

End Sub