【发布时间】:2015-05-09 00:45:15
【问题描述】:
我正在寻找一种解决方案来自动增加列中的小数值,直到每列达到最大值。
我已经设法为列 A { =SUM(B3+0,1) }
制定了一个公式通过将单元格 1 拖到我需要的最大值,但这不是很有效,因为每一列都有不同的最大值。
如下图所示:
Column A maximum required value 200
Column B maximum required value 400
Column C maximum required value 800
| A | B | C |
---------------------------------
#1 | 1,1 | 2,1 | 3,1 | -- mimimum value
#2 | 200 | 400 | 800 | -- maximum value
---------------------------------
#3 | 1,2 | 2,2 | 3,2 | -- incremented value minimum A$1 + 0,1 | B$1 +0,1 | C$1 + 0,1
#4 | 1,3 | 2,3 | 3,3 | -- incremented value minimum A$3 + 0,1 | B$3 +0,1 | C$3 + 0,1
#5 | 1,4 | 2,4 | 3,4 | -- incremented value minimum A$4 + 0,1 | B$4 +0,1 | C$4 + 0,1
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ split
#13 | 2,2 | 3,2 | 4,2 | -- incremented value minimum A$12 + 0,1 | B$12 +0,1 | C$12+ 0,1
某些列的行数 > 600。
我的问题是如何使用 VBA 脚本或其他 Excel 公式为每列填充 0,1 个十进制值?
Sub AddValue()
Dim Rng As Range, A3 As Range
Set Rng = Range("A3:A99999")
For Each Al In Rng
A3.Value = A3.Value + 0,1
Next
End Sub
当excel增量值达到某个值时,我该如何停止它?
如果我可以通过任何高于最大值的方式填充每一列,我可以使用自定义过滤器“仅显示 x 和 xxx 之间的值”过滤掉每个列的值
变化
更新 1:我已使用 for 循环更新了帖子中的脚本。但是 0,1 不接受,我需要增加低于 A2 的单元格,直到 (A1) 中的最小值达到最大值 (A2)
更新 2:我现在使用的公式具有在触发最大值时返回 FALSE 的逻辑。
=IF(B2+0,1>B$1;FALSE;B2+0,1)
问题仍然是如何使用 VBA 填充行,例如“B3”到“B99999”| 'C3' 到 'C99999' | 'D4' 到 'D99999' 等在每个单元格中使用此公式递增。如果解决了,我可以触发过滤器来删除所有包含“FALSE”的行
【问题讨论】:
-
您可能想了解for-loop
-
谢谢,但是 vba 超出了我的舒适范围
-
我已经按照您的建议使用 for 循环更新了我的帖子中的脚本,但是 0,1 不接受,我需要增加 A2 以下的单元格,直到 (A1) 中的最小值达到最大值 (A2)