1

我想在一个范围内搜索一个字符串,然后从字符串中提取一个子字符串。字符串的格式为 xxx-xxx-xxx-xxx,其中 x 可以是字母或数字。我正在尝试识别引用“-”的子字符串。此代码在 End If 之前的行上返回“类型不匹配”错误。

For m = 7 To 16
    If InStr(EIRPBudget.Cells(m, 12), "-") Then
        FilterDescrip = EIRPBudget.Cells(m, 12)
        EIRPSummary.Range("V" & i + 5) = Split(FilterDescrip, "-")(0)
    End If
Next

任何援助将不胜感激。

4

1 回答 1

3

Type Mismatch是由这部分引起的:如果不是 5 EIRPSummary.Range("V" & i = 5),则评估为“VFALSE”,如果是,则评估为“VTRUE”...i

更新

我认为你不能在没有循环的情况下使用全 VBA,因为你需要迭代一个范围内的单个单元格。但是,您可以修改代码以每次迭代仅评估一次单元格值......但我认为不会对您正在进行的少量迭代产生巨大影响:

Dim cellValue As String
For m = 7 To 16
    cellValue = EIRPBudget.Cells(m, 12)
    If InStr(cellValue, "-") Then _
        EIRPSummary.Range("V" & i + 5) = Split(cellValue, "-")(0)
Next

或者,如果您可以在工作表中添加另一列=LEFT([A1],FIND("-",[A1])-1)(其中 [A1] 是带有“xxx-xxx-xxx-xxx”的单元格),您将得到这样的结果:最左边的n个字符直到第一次出现的位置的“-”,不包括那个字符。

于 2013-08-30T00:20:26.887 回答