【发布时间】:2018-07-19 07:53:09
【问题描述】:
我有一个功能可以删除 Access 表的单个列中的重复文本字符串:
原始值:Cardholder、Reconciler、Reconciler、Cardholder、Approver
期望的输出:持卡人、核对人、批准人。
我有以下函数可以实现这一点,但如果只有一个值要返回,它会留下一个逗号(例如“持卡人”)
Function stringOfUniques(inputString As String) As String
Dim inArray() As String
Dim xVal As Variant
Dim s As String
inArray = Split(inputString, ",")
For Each xVal In inArray
If InStr(s, Trim(xVal)) = 0 Then _
s = s & Trim(xVal) & " ,"
Next xVal
stringOfUniques = s
End Function
应该调整哪个部分来反映这种变化?
谢谢。
【问题讨论】:
-
只需抓住数组的最后一个元素,并用替换逗号的新字符串替换它的值。所以 inArray(inArray.Length - 1) = inArray(inArray.Length - 1).Replace(",", "")
-
那行代码会在当前的 inArray = Split(inputString, ",") 行下面吗?还是应该改变那条线?
-
将新的代码行放在 inArray=Split(inputString, ",") 下不起作用。我得到一个编译错误:无效的限定符。
-
在你最后一行 stringOfUniques = s Dim lastComma As Integer = s.LastIndexOf(",") s = s.Substring(0, lastComma) 之前添加这两行代码
-
这将在您的返回字符串中找到逗号字符的最后一次出现,并将 s 的子字符串抓取到最后一个逗号,因此将其排除在外,请参阅下面的答案。
标签: string function ms-access duplicates vba