我想搜索字符串的范围,然后从字符串中提取子字符串。字符串的格式为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
任何帮助都将不胜感激。
答案 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>最左边的字符,直到第一次出现“ - ”的位置,不包括该字符。