gpt4 book ai didi

Excel 2010 宏 : Replace all cells containing number greater than AND smaller than

转载 作者:行者123 更新时间:2023-12-03 00:29:52 24 4
gpt4 key购买 nike

我有一个很大的 Excel 工作表,我想在其中替换多个数字范围(全部在同一单元格范围内)。例如,我想将所有大于-5且小于5的数字替换为数字0。所有大于5且小于10的数字应替换为1,所有大于-10且小于-5的数字应替换为0。替换为 -1,依此类推。

我尝试使用这个公式

Sub replace()
Dim rng As Range

For Each rng In Range("B2:AI40")
If IsNumeric(rng) < 5 And IsNumeric(rng) > -5 Then
rng = 0
End If
Next rng
End Sub

这并不能完全解决问题,因为它将所有内容替换为 0。类似地,this解决方案也不起作用。我如何修改任一公式以满足我的需要,或者这样的替换是不可能的?

谢谢!

最佳答案

尝试

Sub replace()
Dim rng As Range

For Each rng In Range("B2:AI40")
If rng.Value < 5 And rng.Value > -5 Then
rng = 0
End If
Next rng
End Sub

IsNumeric 是一个 bool 函数,它返回 0 或 1,这就是之前每个单元格都设置为 0 的原因。如果您希望单元格中包含非数字值,则可能必须使用以下代码:

Sub replace()
Dim rng As Range

For Each rng In Range("B2:AI40")
If IsNumeric(rng) then
If rng.Value < 5 And rng.Value > -5 Then
rng = 0
End If
End if
Next rng
End Sub

当您使用整数除(\)除以 5 时,整个任务变得更简单(并且还处理您提到的其他情况):

Sub replace()
Dim rng As Range

For Each rng In Range("B2:AI40")
If IsNumeric(rng) then
rng = rng.Value \ 5
End if
Next rng
End Sub

关于Excel 2010 宏 : Replace all cells containing number greater than AND smaller than,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com