【发布时间】:2020-06-11 11:16:46
【问题描述】:
我是 VBA 的初学者,并且一直在广泛使用循环来自动化数据集上的一些工作。我有一组日期,这些日期之间是空单元格。我已经用 TRUE 值填充了空单元格,现在想找到两个连续的 TRUE 值之间的最大值,但显然不包括这些单元格,然后我想用这个来遍历我的整个数据集。
我的问题是我似乎无法找到一种方法来创建一个宏来找到正确的上限和下限,然后找到这之间的最大值,然后将结果返回到另一列中,另一列在另一列下
例如,我想取第二个和第三个 TRUE 之间的数据,找到最大值,然后将这个最大值粘贴到 D2 中。然后我想去第三个和第四个 True 并做同样的事情。所以最后我应该有一列最大日期
excel 在记录宏功能上绘制的 max 函数引用了关于您要粘贴最大值的位置的上限和下限,但是由于单元格数量在边界之间发生变化,我无法列出最大值 - 有些会达不到其他的,会超过。
我的想法是开发一个宏,它找到第一个 TRUE,寻找下一个 TRUE,然后计算出这两个之间的最大值,但不包括这两个。然后我将 Range("D1").value = max("first true:second true") 存入 y 值。继续下一个循环,它将找到第三个 TRUE 并输出第二个和第三个之间的最大值,同样不包括这两个单元格,并且 Range("D2").value = max("second true:third true" )。
我只是不知道如何使 max 函数像这样工作。我也不知道如何通过 TRUE 列表进行路由,以便我总是在正确的位置
【问题讨论】:
-
你可以看看Range.Find方法。有一个演示代码。