作者home0303 (Blue night)
看板Office
标题[算表] Excel VBA变数字元限制
时间Tue Jan 22 11:22:51 2019
软体:EXCEL
版本:2010
因有同事需要 我协助写了一个自订函数
目的是取得不重复项目个数
Function NoDuplicateCount(范围) '统计不重复个数
字串 = "^"
For Each cell In 范围
If InStr(字串, cell) = 0 Then 字串 = 字串 & "^" & cell.Value
Next
If 字串 = "^" Then NoDuplicateCount = 0: Exit Function
NoDuplicateCount = Len(字串) - Len(Application.Substitute(字串, "^", "")) - 1
End Function
一开始还可顺利运作 但资料一多发现就错了
我用msgbox抓了一下 发现是因为 字串 在某处就停止了
我猜应该是VBA对於变数的容量已经到了极限
那请问类似的目的有何其他的解法呢??
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.98.114.28
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1548127373.A.705.html
1F:→ soyoso: 设个变数累加,以工作表函数countif计数,为1时累加1 01/22 11:47
2F:→ soyoso: 最後回传该变数值 01/22 11:47
3F:→ soyoso: 或以要用dictionary方式,不存在exists时写入任一数字,存 01/22 12:05
4F:→ soyoso: 在时改写入个文字,最後工作表函数count该变数的项目集合 01/22 12:06
5F:→ home0303: 谢谢 Countif的方式我可以理解 就用这个来解 01/22 12:51