VBA excel:如何将字符串数组与字符串进行比较?

VBA excel:如何将字符串数组与字符串进行比较?,vba,excel,Vba,Excel,我有一个脚本,它获取单元格的内容,并将单元格的前2个字符放入字符串数组。稍后我需要将该字符串数组与字符串进行比较,但我似乎无法使其正常工作。以下是我所拥有的: For i = 2 To 600 colStr = Sheets("smartlist").Cells(i, "A").Value If colStr <> "" Then ReDim charArray(Len(colStr) - 1) For j = 1 To Len(colStr) cha

我有一个脚本,它获取单元格的内容,并将单元格的前2个字符放入字符串数组。稍后我需要将该字符串数组与字符串进行比较,但我似乎无法使其正常工作。以下是我所拥有的:

For i = 2 To 600
colStr = Sheets("smartlist").Cells(i, "A").Value
If colStr <> "" Then
    ReDim charArray(Len(colStr) - 1)
    For j = 1 To Len(colStr)
        charArray(j - 1) = Mid$(colStr, j, 1)
    Next
    strArray = LCase(charArray(0)) & LCase(charArray(1))

    If CStr(Join(strArray)) = CStr(Join(pwArray)) Then
在这一点上我很迷茫。欢迎提出任何建议


编辑:添加了整个函数,直到我得到“类型不匹配”

您可以使用
Join(charArray,“”
-不使用“”,它用空格连接元素,因此您最初尝试的结果是“a b”

首先,您确实需要澄清您在做什么。你说以后你需要检查字符串中的内容。如果是这样,那么你不需要数组,你只需要另一个字符串

Dim chars As String
chars = Left$(cellToTest, 2)
稍后,您可以更简单地使用
InStr
函数进行测试,如下所示

Dim loc As Integer
loc = Instr(colStr, chars)
If loc > 0 Then
    ...
如果要将其转换为电子表格中的函数,可以在单元格中使用以下公式

=LEFT(A1, 2)
=SEARCH(A3, A1)
这是我的意思的一个小屏幕截图


您使用变量i循环,但在for循环中使用j索引数组->这是一个拼写错误还是j来自何处?@DAXaholic拼写错误,当我将其移过时,已修复。当我调试时,我可以看到charArray看起来正确地保存了单元格中的值,这是我遇到的比较问题。只是为了确保我正确地理解了它:是否要检查“ab”是否是数组的元素之一?我不太确定我是否理解为什么要这样做。为什么不使用电子表格公式?您可以通过使用公式来减少大量的编码工作,然后稍后使用VBA研磨数据。@DAXaholic我想检查字母组合是否构成“ab”,即charArray(0)是“a”,charArray(1)是“b”,通过“later”,我指的是代码中进一步的比较,但这正是我需要的,谢谢!没问题,恰克。尽管它并不出色,但Excel中公式的帮助(F1)可能是一个很好的起点。
=LEFT(A1, 2)
=SEARCH(A3, A1)