前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA实用小程序77:生成字符的所有组合

VBA实用小程序77:生成字符的所有组合

作者头像
fanjy
发布2021-05-07 10:41:06
1.5K0
发布2021-05-07 10:41:06
举报
文章被收录于专栏:完美Excel完美Excel

这是在stackoverflow.com中看到的一段VBA程序,生成所有7个字符中5个字符的任意组合,有兴趣的朋友可以试试。

程序代码如下:

Public Function DropCH(sIn As String, L As Long) As String

Dim ll As Long

If L = 1 Then

DropCH = Mid(sIn, 2)

Exit Function

End If

ll = Len(sIn)

If ll = L Then

DropCH = Left(sIn, L - 1)

Exit Function

End If

If L > ll Then

DropCH = ""

Exit Function

End If

DropCH = Mid(sIn, 1, L - 1) & Mid(sIn,L + 1)

End Function

在工作表单元格A1中输入包含7个字符的字符串,然后在单元格C1中输入公式:

=DropCH(A1,COLUMNS(

然后拖动C1至单元格I1,如下图1所示。

图1

在单元格C2中输入公式:

=DropCH(C$1,ROW()-1)

然后,向下拖至单元格C7,向右拖至单元格I7。结果如下图2所示。

图2

要移除重复值,可以运行下面的程序:

Sub DropDuplicates()

Dim c As Collection

Dim K As Long

Dim r As Range

Set c = New Collection

On Error Resume Next

K = 1

For Each r In Range("C2:I7")

If r.Value <> "" Then

c.Add r.Value, CStr(r.Value)

If Err.Number = 0 Then

Cells(K, "J").Value = r.Value

K = K + 1

Else

Err.Number = 0

End If

End If

Next r

On Error GoTo 0

End Sub

这将在列J中放所有的不重复的5个字符组合,如下图3所示。

图3

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档