0

文字列の 9 番目の文字に - 記号がある場合、列 A から列 B までの文字列の一部をカット アンド ペーストするマクロが必要です。テキスト部分をコピー/ペーストするがカット/ペーストしないコードをstackoverflowで見つけました。私のデータは次のようになります

SUBIAIUP-456253
SUBIAIUP-254

これまでのコードは次のとおりです。

Public Sub LeftSub()
 Dim cell As Range
 Dim sourceRange As Range

 Set sourceRange = Sheet1.Range("A1:A180")

 For Each cell In sourceRange

     If Mid(cell.Value, 9, 1) = "-" Then

     'this code should cut/paste the value from col A to col B, not copy/paste
     Sheets("Sheet1").Range("B" & cell.Row).Value = Mid(cell.Value, 9, 20)

     End If
  Next
 End Sub

どんな助けでも大歓迎です。
ありがとうございました。

4

1 に答える 1

3

列 B に貼り付ける値を列 A から削除するには、次のようにします。

If Mid(cell.Value, 9, 1) = "-" Then
    cell.Offset(, 1).Value = Mid(cell.Value, 9)
    cell.Value = Left(cell, 8)
End If

Sid と Brett が指摘しているように、中間点から残りの値を取得する場合、Mid 関数の文字数引数は必要ありません。列 B の値の先頭にダッシュが必要な場合は、中間点を 9 に設定します。省略したい場合は、10 に設定します。

列 A から B までの値全体をカット アンド ペーストする場合は、次のようにします。

If Mid(cell.Value, 9, 1) = "-" Then
    'this code WILL cut/paste the value from col A to col B, not copy/paste
    cell.Cut cell.Offset(, 1)
End If
于 2013-02-17T01:32:46.110 に答える