2015-09-22 41 views
-1

我想将某些数据偏移到另一列。在A列中的数据存在和B.我使用的代码是:基于特定条件将数据从一列移到另一列

Sub data_shifter() 
Dim A As Range, r As Range 
Set A = Intersect(ActiveSheet.UsedRange, Range("A:A")) 

For Each r In A 

    If Mid(r, 4, 1) = "-" Then 
     r.Copy r.Offset(0, 15) 
     r.Clear 
    End If 
Next r 

ActiveWorkbook.Save 

End Sub 

此代码是寻找在A列中所有的字符串,其中-是第四个字符。我想要的是前三个字符应该是数字,第四个字符是-。另外,如果上述情况为真,B列中的数据也应该被抵消。

例如,如果列A2具有333-m1233232应该偏移列B2 P2和数据应该偏移Q2

+0

尝试把这个'档(R ,r.offset(,1))。复制r.offset(,15)'代替'r.Copy r.Offset(0,15)' –

+0

谢谢是的,它的工作原理,但我只想要数字是数字前三个字符和 - 第四个字符像888-fdersfdf – mb1987

回答

0
Sub data_shifter() 
    Dim r As Range 
    For Each r In ActiveSheet.UsedRange.Columns(1).Cells 
     If IsNumeric(Left(r, 3)) And Mid(r, 4, 1) = "-" Then 
     r.Resize(1, 2).Copy r.Offset(0, 15) 
     r.Clear 
     End If 
    Next r 
    ActiveWorkbook.Save 
End Sub 
0

我的两分钱,

Sub Button1_Click() 

    Dim rng As Range, c As Range  
    Set rng = Range("A:A").SpecialCells(xlCellTypeConstants, 23) 
    For Each c In rng.Cells 
     If IsNumeric(Mid(c, 1, 3)) Then 

      MsgBox " Do your thing" 'what ever you want after that 
     End If 
    Next c 

End Sub 
相关问题