Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1843|回复: 7

[VBA] VBA这个数组不用instr要如何写

[复制链接]
发表于 2016-8-16 18:06 | 显示全部楼层 |阅读模式
VBA这个数组不用instr要如何写


Sub 数组()
Dim arr, S$
arr = Split([a1], ",")
For a = 0 To UBound(arr)
    If InStr(S, "," & arr(a)) = 0 Then S = S & "," & arr(a)
Next
[a3] = Mid(S, 2)
End Sub

'VBA这个数组不用instr要如何写

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2016-8-16 18:26 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-8-16 18:31 | 显示全部楼层
雪舞子 发表于 2016-8-16 18:26
like

也不能用like
回复

使用道具 举报

发表于 2016-8-16 19:31 | 显示全部楼层
又来出题了?!
回复

使用道具 举报

 楼主| 发表于 2016-8-16 19:33 | 显示全部楼层
su45 发表于 2016-8-16 19:31
又来出题了?!

我不认识你,你怎么可能认到我
回复

使用道具 举报

发表于 2016-8-16 23:25 | 显示全部楼层
  1. Sub 数组2()
  2.     Dim arr, i As Long, j As Long, checkexist As Boolean
  3.     arr = Split([a1], ",")
  4.     For i = 0 To UBound(arr)
  5.         For j = 0 To i - 1
  6.             If arr(j) = arr(i) Then checkexist = True
  7.         Next
  8.         If checkexist = True Then
  9.             checkexist = False
  10.         Else
  11.             S = S & "," & arr(i)
  12.         End If
  13.     Next
  14.     [a3] = Mid(S, 2)
  15. End Sub
复制代码
回复

使用道具 举报

发表于 2016-8-16 23:30 | 显示全部楼层
排除重复还有字典。
回复

使用道具 举报

 楼主| 发表于 2016-8-18 09:02 | 显示全部楼层
xdragon 发表于 2016-8-16 23:25

终于有人动脑了   再贴几个答案

Sub 数组1()
    Dim arr, brr(), i&, j&, S$
    ReDim brr(1 To 1)
    arr = Split([a1], ",")
    brr(1) = arr(0)
    For i = 1 To UBound(arr)
        For j = 1 To UBound(brr)
            If arr(i) = brr(j) Then Exit For
        Next j
        If j > UBound(brr) Then
            ReDim Preserve brr(1 To UBound(brr) + 1)
            brr(UBound(brr)) = arr(i)
        End If
    Next i
    For i = 1 To UBound(brr)
        S = S & "," & brr(i)
    Next i
    [a3] = Mid(S, 2)
End Sub


Sub 数组2()
Dim arr, S$
arr = Split([a1], ",")
S = arr(0)
For a = 1 To UBound(arr)
    For b = 0 To a - 1
        If arr(a) = arr(b) Then Exit For
    Next
    If b = a Then S = S & "," & arr(a)
Next
[a3] = S
End Sub




Sub 数组3()
Dim txt As String
txt = Cells(1, 1)
Dim arr() As String
arr = Split(txt, ",")
For i = 0 To UBound(arr)
For j = i + 1 To UBound(arr)
If arr(i) = arr(j) Then arr(j) = ""
Next
Next
txt = Join(arr, " ")
txt = Replace(txt, "  ", " ")
arr = Split(txt, " ")
txt = Join(arr, ",")
Cells(4, 1) = txt
End Sub





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-28 08:48 , Processed in 0.642807 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表