VBA新手。终于遇到了一个无法用公式解决的 Excel 问题。这是我的示例数据:
-----------------------
| | A | B* |
-----------------------
| 1 | Text1 | 3001 |
-----------------------
| 2 | Text2 | 0231 |
-----------------------
| 3 | Text1 | 1003 |
-----------------------
| 4 | Text3 | 0012 |
-----------------------
我想实现 f(A1:A4, "Text1", B1:B4, "3") = 2。
即我想为包含“Text1”的每一行计算B列中字符“3”的累积出现次数。请注意,B 列中的单元格的类型为 text vs int。如果有办法在没有 vba 的情况下实现这一点,我也会欢迎。
这是我到目前为止所拥有的:
Function CountCharInStr(FilterStr As String, FilterRange As Range, SearchStr As String, StrRange As Range) As Integer
Dim Idx As Integer, IsFound As Boolean
CountCharInStr = 0
IsFound = False
For Idx = 1 To FilterRange.Rows.Count
IsFound = True
If FilterRange(Idx) <> FilterStr Then
IsFound = False
Exit For
End If
If IsFound Then
CountCharInStr = Len(StrRange(Idx)) - Len(Replace(StrRange(Idx), SearchStr, "")) + CountCharInStr
Exit For
End If
Next Idx
End Function
该函数当前返回初始值 0,而不是 2。还想知道是否有一种简单的方法可以单步执行用户定义的函数以进行调试。
非常感谢!