Vba 如何将单元格范围乘以一个值
我试着做一个函数,在这个函数中,人们可以输入一个整数,表示某个单元格中要增加的百分比,然后某个范围内的值会随着这个输入而增加。我对vba非常陌生,所以我不太确定如何才能做到这一点。以下是我到目前为止的情况:Vba 如何将单元格范围乘以一个值,vba,excel,Vba,Excel,我试着做一个函数,在这个函数中,人们可以输入一个整数,表示某个单元格中要增加的百分比,然后某个范围内的值会随着这个输入而增加。我对vba非常陌生,所以我不太确定如何才能做到这一点。以下是我到目前为止的情况: Dim percent As Integer Function ADJUST(percent) If percent > 0 Then percent = (percent + 100) * 0.01 'Converts value to percentag
Dim percent As Integer
Function ADJUST(percent)
If percent > 0 Then
percent = (percent + 100) * 0.01 'Converts value to percentage to increase
percent.Copy
Range("K4:N20").PasteSpecial Paste:=xlPasteAll, Operation:=xlMultiply
Else
percent = 0
End If
End Function
我知道复制和粘贴特别可能也不是最有效的方法。如果方向正确,我们将不胜感激 就我个人而言,我会使用
For
循环并遍历范围内的每个单元格。另外,请注意:这不需要是函数,因为没有返回值-最好将其设置为子
,其参数为百分比
Sub ADJUST(percent)
If percent > 0 Then
For Each cell In Range("K4:N20")
cell.Value = cell.Value * (percent * 0.01)
Next cell
Else
cell.Value = 0
End If
End Function
测试:
免责声明:有更简单的方法吗?很可能。这是家庭作业吗?这不需要VBA;最好使用简单的工作表函数来完成此操作。如果您不熟悉使用Excel的工作表函数,我建议您首先关注这一点。仅供参考,percent
参数隐藏了percent
模块级变量,该参数应声明为范围
。另外,由于它是以ByRef
隐式传递的,因此无法判断其目的是分配percent
本地范围参数,还是分配percent
模块范围的专用字段。模块级别变量在ADJUST
范围内不可访问。还不清楚:我花了3次读取才意识到参数实际上是一个变量/范围
,而百分比=(表达式)
实际上是百分比.Value=(表达式)
。说什么就做什么。
Sub Test()
Adjust (50)
End Sub