第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在數(shù)組中搜索字符串

如何在數(shù)組中搜索字符串

在VBA中的數(shù)組中是否有容易(單線)搜索的字符串?還是我需要遍歷每個元素并將其與目標(biāo)字符串進(jìn)行比較?編輯:這是一維數(shù)組。我只需要知道如果一個字符串是某處在數(shù)組中。IE瀏覽器:names(JOHN, BOB, JAMES, PHLLIP)我如何確定數(shù)組中是否包含“ JOHN”,它必須最小,因為它將重復(fù)大約5000次,并且我不希望該函數(shù)減慢整個過程的速度。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

如果您想知道是否在數(shù)組中找到該字符串,請嘗試以下函數(shù):


Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean

  IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)

End Function

正如肖恩·柴郡指出的那樣,這必須是一維數(shù)組。


例:


Sub Test()

  Dim arr As Variant

  arr = Split("abc,def,ghi,jkl", ",")

  Debug.Print IsInArray("ghi", arr)

End Sub

(以下代碼根據(jù)HansUp的評論進(jìn)行了更新)


如果要在數(shù)組中匹配元素的索引,請嘗試以下操作:


Function IsInArray(stringToBeFound As String, arr As Variant) As Long

  Dim i As Long

  ' default return value if value not found in array

  IsInArray = -1


  For i = LBound(arr) To UBound(arr)

    If StrComp(stringToBeFound, arr(i), vbTextCompare) = 0 Then

      IsInArray = i

      Exit For

    End If

  Next i

End Function

這也假設(shè)一維數(shù)組。請記住,LBound和UBound從零開始,因此索引為2表示第三個元素,而不是第二個。


例:


Sub Test()

  Dim arr As Variant

  arr = Split("abc,def,ghi,jkl", ",")

  Debug.Print (IsInArray("ghi", arr) > -1)

End Sub

如果您有特定的示例,請使用它來更新您的問題,否則示例代碼可能不適用于您的情況。


查看完整回答
反對 回復(fù) 2019-10-30
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

另一種選擇是使用字典而不是數(shù)組:


Dim oNames As Object

Set oNames = CreateObject("Scripting.Dictionary")

'You could if need be create this automatically from an existing Array

'The 1 is just a dummy value, we just want the names as keys

oNames.Add "JOHN", 1

oNames.Add "BOB", 1

oNames.Add "JAMES", 1

oNames.Add "PHILIP", 1

這樣一來,您就可以


oNames.Exists("JOHN")

字典提供的優(yōu)勢是與的部分匹配相比,精確匹配Filter。假設(shè)您有一個數(shù)組中的原始名稱列表,但正在查找“ JO”或“ PHIL”,除了我們最初使用的四個人以外,他們實際上是兩個新人。在這種情況下,F(xiàn)ilter(oNAMES, "JO")將匹配可能不需要的“ JOHN” 。有了字典,它就不會。


查看完整回答
反對 回復(fù) 2019-10-30
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗 獲得超7個贊

更簡單的功能在Apple OS上也可以使用:


Function isInArray(ByVal stringToBeFound As String, ByVal arr As Variant) As Boolean

Dim element

For Each element In arr

    If element = stringToBeFound Then

        isInArray = True

        Exit Function

    End If

Next element

End Function


查看完整回答
反對 回復(fù) 2019-10-30
  • 3 回答
  • 0 關(guān)注
  • 988 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號