从范围内的字符串中提取子字符串

时间:2013-08-30 00:15:07

标签: vba excel-vba excel

我想搜索字符串的范围,然后从字符串中提取子字符串。字符串的格式为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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

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

<强>更新

我不认为你可以在没有循环的情况下使用全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 < / em>最左边的字符,直到第一次出现“ - ”的位置,不包括该字符。