Excel 基于另一列值乘以一列

Excel 基于另一列值乘以一列,excel,vba,Excel,Vba,我试图在另一列值的基础上,将一列值乘以100。我犯了一个错误 Sub macro1() Dim f As Range Set f = Range("B2:B5").Value For i = 2 To 100000 With Sheets("Sheet1") If .Range("A" & i).Value = "Pavel" Then .Range("B" & i).Value = f * 100 Next i

我试图在另一列值的基础上,将一列值乘以100。我犯了一个错误

Sub macro1()
Dim f As Range

Set f = Range("B2:B5").Value

For i = 2 To 100000
    With Sheets("Sheet1")
        If .Range("A" & i).Value = "Pavel" Then
            .Range("B" & i).Value = f * 100
Next i
        End If
End Sub

如果在If语句中的
then
之后开始新行,则必须以
end If
结束块(暂时忽略行连续字符)——否则语法无效

因此,你可以:

If 1 > 0 then
     Msgbox("True!")
End if
或:

但是不要在
之后开始新行,如果
,则不要包含
结束


另外,最好将
Option Explicit
放在您的代码之前,您的
f
变量似乎未使用过——但这不是您的问题。

所以。。。无论何时,只要有
,您就需要
下一步
。对于
If
需要
End If
,除非它不在同一行上。对于带
,需要一个带
结尾

因此,总的来说,为了让你从某个地方开始,这是可行的:

Option Explicit

Sub Macro()
    Dim f As Range
    Dim i As Long

    Set f = Range("B2:B5")

    For i = 2 To 100000
        With Worksheets("Sheet1")
            If .Range("A" & i).Value = "Pavel" Then
                .Range("B" & i).Value = .Range("B" & i) * 100
            End If
        End With
    Next i    
End Sub

看看代码顶部的
选项Explicit
,它非常重要,可以将代码提高一个级别-。

我不明白,你是想用4个数字乘以100,然后得到结果?是将4个数字相加后再相乘,还是将每个数字相乘100后再相乘。为了澄清问题,请添加一个示例输入和预期结果。这是一个问题,是的,但OP试图将数组相乘100,这也会导致类型不匹配的错误。@ScottCraner抱歉,我错过了。手机应用程序不会给我删除答案的选项,但会尝试通过浏览器删除。非常感谢!
Option Explicit

Sub Macro()
    Dim f As Range
    Dim i As Long

    Set f = Range("B2:B5")

    For i = 2 To 100000
        With Worksheets("Sheet1")
            If .Range("A" & i).Value = "Pavel" Then
                .Range("B" & i).Value = .Range("B" & i) * 100
            End If
        End With
    Next i    
End Sub