如果字符串在第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
非常感谢任何帮助 谢谢。
答案 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