1

セル P194 、P200 、P300 などに次のような記述があります。

「カットオフコスト| INV # CAT-02345-BAT-MAT​​07| Line # 00785| SEQ # 719779| Billing MUG STC4500」

INV #までの全文字が欲しいと|の間の文字が決まっていなくて違う。以下のコードを使用しています。スクリプトは、列 P の INV # 項目に対しては正常に動作しますが、列 P の非 INV # 記述に対しては機能しません。セル P12 のように、記述は "GLUCO30|57891|||||M007Z|13/15 ローカル ホスト CDFS|CATT-4FGH548 -20121220|||00013|FICO56D2F0G0G0| "。セル A12 の値を「S-427548-20121220」として出力しています。問題をよりよく理解するには、列 P に両方の説明を貼り付けて、以下のコードを実行してください。Cloumn P の説​​明 1)"Cut-off Cost| INV # CAT-02345-BAT-MAT​​07| Line # 00785| SEQ # 719779| Billing MUG STC4500" 2)"GLUCO30|57891|||||M007Z|13/15ローカル ホスト CDFS|CATT-4FGH548-20121220|||00013|FICO56D2F0G0G0|INV #|

    Sub Invoice()
    On Error Resume Next
    Dim RowCtr As Long, MyStart As Long, MyEnd As Long
    RowCtr = 6
    While Sheets("Stack").Range("E" & RowCtr).Value <> ""
        MyStart = WorksheetFunction.Find("#", Sheets("stack").Range("P" & RowCtr).Value, 1)
        MyEnd = WorksheetFunction.Find("|", Sheets("stack").Range("P" & RowCtr).Value, MyStart)
        If WorksheetFunction.Find("#", Sheets("stack").Range("P" & RowCtr).Value, 1) > 0 Then
            Sheets("stack").Range("A" & RowCtr).Value = Mid(Sheets("stack").Range("P" & RowCtr).Value _
            , MyStart + 2, MyEnd - MyStart - 2)
        End If
        RowCtr = RowCtr + 1
    Wend
End Sub
4

2 に答える 2

1
Sub changeString(sample As String)
    ' Find the location of the first # and remove that portion
    Dim charNum As Integer
    charNum = InStr(1, sample, "#")
    sample = Right(sample, Len(sample) - charNum )

    ' Remove everything from the | till the end
    charNum = InStr(1, sample, "|")
    sample = Left(sample, charNum - 1)
End Sub
于 2013-06-21T14:40:35.317 に答える