我连续处理 956 个值。我在获取每个值中的行距离时遇到问题,因为它们太多了。有没有办法使用带有按钮的 Excel-VBA 来实现这一点?
例如:这显示了计算行距的次数。
在模块中创建一个用户定义的函数,代码如下:
Option Explicit
Public Function Distance(matrix As Range, value As Long, rowCount As Long)
Dim cell As Range
Dim lastRow As Long
Dim result As Long
lastRow = 1
For Each cell In matrix
If cell.value = value Then
If cell.row - lastRow + 1 = rowCount Then result = result + 1
lastRow = cell.row
End If
Next
Distance = result
End Function
这就是您需要的所有代码。现在在工作表中将此公式放入单元格中I5
,即结果表的左上角单元格:
=Distance($A$1:$F$11, $H5, I$4)
根据左侧源表中有多少行,您可能需要11
将该公式中的行数调整为更大的数字,以便在那里引用整个表。
然后将此公式复制到输出表的其余部分:水平拖动/复制,然后选择该行,然后向下拖动/复制。
该表也将填充许多零。要摆脱这些,请使用单元格格式。使用此自定义格式:
0;-0;
这是结果(忽略您在公式中看到的分号;这些与我的区域设置有关):
不需要按钮。结果会像任何其他标准公式一样更新。
请注意,如果需要,您可以使用其他名称命名您的函数,但请确保对工作表中的公式进行相同的更改。