小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

一個(gè)VBA自定義函數(shù),使用文本格式連接唯一值單元格

 hercules028 2022-01-19

excelperfect

標(biāo)簽:VBA實(shí)用代碼

一個(gè)單元格區(qū)域內(nèi)有一組數(shù)字,這些數(shù)字中存在多個(gè)相同的數(shù)字,想要將這些數(shù)字中的唯一值提取出來(lái)并組合成一串?dāng)?shù)字文本,如下圖1所示。

圖片

1

可以使用VBA編寫(xiě)自定義函數(shù)來(lái)實(shí)現(xiàn),代碼如下:

Function ConcatenateUnique(ByRef rngRange As Range, _

         Optional ByVal SeperatorAs String = ' ', _

         Optional ByVal Format AsString = '@', _

         Optional ByVal CaseSensitive As Boolean = False) _

         As String

    Dim rng As Range

    Dim strAnswer As String

    Dim strTemp As String

    Dim CompMethod As VbCompareMethod

    'InStr函數(shù)設(shè)置文本比較模式

    If CaseSensitive Then

        CompMethod =vbBinaryCompare

    Else

        CompMethod = vbTextCompare

    End If

    For Each rng In rngRange

        strTemp = rng.Value

        '僅處理非空單元格

        If Not strTemp =vbNullString Then

            '應(yīng)用格式

            strTemp =Application.WorksheetFunction.Text(strTemp, Format)

            '首先初始化結(jié)果字符串, 然后合并

            If strAnswer =vbNullString Then

                strAnswer = strTemp

            Else

                '僅合并唯一值

                If InStr(1,Seperator & strAnswer & Seperator, _

                        Seperator& strTemp & Seperator, CompMethod) = 0 Then

                    strAnswer =strAnswer & Seperator & strTemp

                End If

            End If

        End If

    Next rng

    '返回結(jié)果字符串

    ConcatenateUnique = strAnswer

End Function

這個(gè)函數(shù)僅將指定單元格區(qū)域中的唯一值使用可選的格式字符串連接起來(lái)。如果未指定格式字符串,則被視為字符串(@)。此函數(shù)在每個(gè)值之間插入分隔符字符串,默認(rèn)分隔符設(shè)置為” ”

這段代碼來(lái)自strugglingtoexcel.com。通常,我們會(huì)考慮使用Dictionary對(duì)象,在連接符合要求的值之前獲取唯一列表。然而,這段代碼另辟蹊徑,使用了VBA中的InStr函數(shù),在連接之前檢查是否已將值添加到結(jié)果中,如果沒(méi)有則添加。巧妙的實(shí)現(xiàn)方法!

歡迎在下面留言,完善本文內(nèi)容,讓更多的人學(xué)到更完美的知識(shí)。

歡迎到知識(shí)星球:完美Excel社群,進(jìn)行技術(shù)交流和提問(wèn),獲取更多電子資料,并通過(guò)社群加入專門(mén)的微信討論群,更方便交流。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多