Excel宏或VBA用于使选定范围值为绝对值

Excel宏或VBA用于使选定范围值为绝对值,excel,vba,Excel,Vba,是否有人可以帮助我使用Excel VBA通过单个按钮将所选范围值的所有值设置为绝对值(或对范围内的每个单元格应用绝对公式) A B C 5.119999886 -13.06999969 -13.14000034 -5.76999998 -12.52000046 -12.78999996 -5.88000011 -13.69999981 -14.13000011 5.46999979 -12.61999989 -

是否有人可以帮助我使用Excel VBA通过单个按钮将所选范围值的所有值设置为绝对值(或对范围内的每个单元格应用绝对公式)

   A              B               C
5.119999886  -13.06999969   -13.14000034
-5.76999998  -12.52000046   -12.78999996
-5.88000011  -13.69999981   -14.13000011
5.46999979   -12.61999989   -12.48999977

您可以这样做:

Sub MakeAbsolute()

        Dim c As Range
        Dim rngToAbs As Range

        'Set the worksheet name and range appropriately
        Set rngToAbs = Worksheets("Sheet1").Range("A1:C2")

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

End Sub
您需要将
Sheet1
更改为工作表名称,并将
A1:C2
更改为要获取绝对值的单元格范围

希望代码足够简单易懂,但基本思想是我们将声明一个特定的范围,循环该范围内的每个单元格,并通过应用
Abs
函数将该单元格的值更改为绝对值。

考虑:

Sub dural()
    Dim rng As Range
    Set rng = Range("A1:F10")
    rng.Replace what:="-", lookat:=xlPart, replacement:=""
End Sub

不完全是VBA,但如果需要,可以记录

选择您的数据范围,按Ctrl键H(替换),在查找内容中添加“-”符号并全部替换。这将从所有数字中删除负号,它将变为绝对值


注:如评论中所述,OP同意这对他有效,因此作为答案发布。

不完全是VBA,但如果需要可以记录,请选择您的数据范围,按Ctrl-H(替换),在“查找内容”“添加”-”中签名并全部替换。这将从所有数字中删除负号,它将变为绝对值。效果很好,但这需要时间,因为我有6列和150000行,无论如何,非常感谢,因为它解决了我的问题。谢谢,效果很好,但我不想修改范围或工作表名称,我想在工作簿中的任何地方使用它,只需选择所需的范围并运行宏/VBA代码。然后将Set rng=range(“A1:F10”)替换为Set rng=Selection伟大的解决方案!简单快捷。非常感谢。