Mac版Excel中使用Scripting.Dictionary的VBA函数返回#VALUE!求助
解决Mac版Excel中RemoveDupes1函数返回#VALUE!的问题
可能的原因
- 原函数使用了Windows VBA特有的对象(比如
Scripting.Dictionary),Mac版Excel默认未加载对应库 - 函数包含Mac不兼容的字符串操作语法
- 参数传递或单元格引用逻辑存在平台适配问题
兼容Mac的VBA去重函数
替换原函数为以下跨平台版本,操作步骤如下:
- 打开Excel,按
Option + F11打开VBA编辑器 - 右键左侧工程窗口的工作簿名称,选择插入→模块
- 将以下代码粘贴到模块窗口:
Function RemoveDupes(rng As Range) As String Dim char As String Dim result As String Dim i As Integer result = "" For i = 1 To Len(rng.Value) char = Mid(rng.Value, i, 1) If InStr(result, char) = 0 Then result = result & char End If Next i RemoveDupes = result End Function
- 返回工作表,在目标单元格输入
=RemoveDupes(A2)即可
验证示例
- 原字符串:
trout - 去重后结果:
trou
内容的提问来源于stack exchange,提问作者cmc
相关产品推荐
相关产品推荐

