根据另一个列的值乘以一列

时间:2018-11-27 20:20:11

标签: 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
        End If
End Sub

2 个答案:

答案 0 :(得分:2)

如果您在IF语句中onDestroy()之后开始新行,则必须以Fragment结束该块(现在让我们忽略行继续符)–否则语法不有效。

所以也可以这样做:

onCreate()

或者:

then

但是不要在End if之后开始新行,并且不要包括If 1 > 0 then Msgbox("True!") End if

此外,最好将If 1 > 0 then Msgbox("True!") 放在您的代码之前,并且您的then变量似乎未被使用-但这不是您的问题。

答案 1 :(得分:0)

所以...只要您有For,就需要Next。对于If,需要End If,除非它不在同一行上。对于With,需要一个End With

因此,通常来说,只是为了让您入门,这在某种程度上可行:

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

看看代码顶部的Option Explicit,这真的很重要,可以将您的代码提升到一个新的水平-MSDN Option Explicit