使用宏剪切并粘贴字符串的一部分

时间:2013-02-17 01:24:02

标签: excel excel-vba excel-2007 vba

如果字符串在第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

非常感谢任何帮助 谢谢。

1 个答案:

答案 0 :(得分:3)

如果您希望从A列中删除粘贴到B列的值,请使用:

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