我 我的vba似乎不太正常。我需要将N列中的值乘以2(如果它是小数),而对所有其他值不执行任何操作。
目前是
Sub multiply()
Dim i, j, k, l As Integer
Dim n As Variant
i = Application.InputBox("enter end row")
j = Application.InputBox("enter factor")
For k = 1 To i
n = Cells(k, 14) * j
If VarType(n) = vbSingle Then Cells(k, 14) = n
Next k
End Sub
这什么都不做。不知道为什么
答案 0 :(得分:1)
您的For
循环可以这样写:
For k = 1 To i
If Cells(k, 14) <> Int(Cells(k, 14)) Then 'if it's decimal
Cells(k, 14) = Cells(k, 14) * j 'then multiply cell by factor
End If
Next k
请注意,我通过检查该数字的Int()
是否与数字本身不同来确定其是否为小数。
一些提示:
endRow = Cells(1,14).End(xlDown).Row
(假设您的数据从第14列的第一个单元格开始)。j
应该被称为multiplyFactor
,i
应该被称为endRow
。Dim i, j, k, l As Integer
时,是在将i
,j
和k
声明为Variant
(默认类型),而仅将l
声明为Integer
甚至没有在代码中使用(至少在您发布的内容中没有使用)。您应该改写Dim i As Integer, j As Integer, k As Integer, l As Integer
。