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」と評価され、 5 である場合は「VTRUE」と評価されiます...

アップデート

範囲内の個々のセルを反復する必要があるため、ループなしですべての VBA を回避できるとは思いません。ただし、反復ごとに 1 回だけセル値を評価するようにコードを変更することはできますが、実行している少数の反復に対して大きな影響があるとは思いません。

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 に答える