首页 > 解决方案 > 将特定列中的所有活动单元格设为其绝对值

问题描述

你能帮我纠正我的 VBA 代码吗?我想将 U 列的值转换为活动行之前的绝对值,这意味着删除负数。
这是我的 VBA 代码:

Sub MakeColumnsAbsoluteValue()

    Dim sht As Worksheet
    Dim rngToAbs As Range
    Dim LastRow As Long
    Dim c As Range

    Set sht = ThisWorkbook.Sheets("MJEBlackline")
    LastRow = sht.Cells(sht.Rows, Count, "U").End(xlUp).Row
    Set rngToAbs = Range("U5:U" & LastRow)

    For Each c In rngToAbs
        c.Value = Abs(c.Value)

    Next c


End Sub

标签: excelvba

解决方案


线路有问题LastRow = sht.Cells(sht.Rows, Count, "U").End(xlUp).Row

使用,代替.和不指定工作表参考rngToAbs

尝试:

Sub MakeColumnsAbsoluteValue()

    Dim sht As Worksheet
    Dim rngToAbs As Range
    Dim LastRow As Long
    Dim c As Range

    Set sht = ThisWorkbook.Sheets("FF")
    LastRow = sht.Cells(sht.Rows.count, "U").End(xlUp).row
    Set rngToAbs = sht.Range("U5:U" & LastRow)

    For Each c In rngToAbs
        c.Value = Abs(c.Value)

    Next c


End Sub

推荐阅读