Excel 基于另一列值乘以一列
我试图在另一列值的基础上,将一列值乘以100。我犯了一个错误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
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