在 VBA 宏中执行简单的数学运算

免费软件服务器

我正在尝试对一列数字进行简单的检查。检查是“如果数字大于 50 大于负 50”,然后我可能需要做一些突出显示/格式化以显示单元格已被操作。

工作表名称每次都会改变,所以我不想指定工作表名称。此外,行数会发生变化,因此我一直在使用循环遍历每一行的“范围”。

我有一个代码片段,可以将单元格值设置为文本,但我无法弄清楚如何对相关单元格执行简单的数学运算。

这是用于更改值的代码片段。

Public Sub testforfifty()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value > 50 Then rcell.Value = "GreaterThan50"
    Next rcell
End Sub

我需要的是这样的:

Public Sub testforfifty()
    Dim rcell As Range, rng As Range
    Set rng = Application.ActiveSheet.Range("D1:D" & Application.ActiveSheet.UsedRange.Rows.Count)
    For Each rcell In rng.Cells
        If rcell.Value > 50 Then rcell.Value = rcell - 50
        Target.Interior.ColorIndex = 8
    Next rcell
End Sub
免费软件服务器

问题是我的一些单元格有文本而不是数字,而不是像预期的那样向前移动,它停止并出错。“就像我需要的那样”的代码确实有效,但它不处理非整数,如果它得到一个带有 text 的单元格,循环就会中断此外,突出显示部分还没有工作,但这是一个单独的线程/问题,我仍在自己处理。

我添加了这个,即使它遇到一个不是数字的单元格也能工作(只是移动到下一个单元格)

   If IsNumeric(rcell.Value) = True Then

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章