使用模式搜索和复制移动单元格

时间:2015-09-28 11:09:46

标签: excel search move

我想在VBA中实现以下目标

Input Workbook1 
Index   Value 
 1       a
 2       a
 3       b
 4       c
 5       a
 6       b
 7       a
 8       c

输出工作簿2

我希望以下列格式输出,以便我可以生成具有相同X轴的图形

Index   Value 1 Value 2     Value 3
1        a      
2        a      
3                b  
4                             c 
5        a      
6                b  
7        a      
8                             c

我正在使用两个函数,第一个是将两列从工作簿1移动到workbook2

Sub MOVE() 
    Sheets("Workbook1").Columns("A").Copy Sheets("Sheet1").Range("A1")
    Sheets("Workbook1").Columns("B").Copy Sheets("Sheet1").Range("B1")`
end sub

第二个功能是:

Sub move_a() 
    Worksheets("Sheet1").Activate 
    Dim myR As Range 
    Set myR = Range("B:B").Find("PATTERN_A") 
    Do While Not myR Is Nothing
         myR.Insert xlToRight 
        Set myR = Range("B:B").FindNext 
    Loop
end sub

但第二个不起作用

1 个答案:

答案 0 :(得分:0)

我把你的两个操作放在一个子程序中。首先在整个块上执行复制,然后根据B列中的值插入单元格,将值移到右侧。

Sub move_it_all()
    Dim rw As Long, a As Long
    With Worksheets("Sheet1")
        Worksheets("Workbook1").Cells(1, 1).CurrentRegion.Copy _
            Destination:=.Cells(1, 1)
        For rw = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
            a = Asc(UCase(Right(.Cells(rw, 2).Value2, 1)))
            If a > 65 And a <= 90 Then
                .Cells(rw, 2).Resize(1, a - 65).Insert shift:=xlToRight
            End If
            .Cells(1, a - 63) = "Value" & a - 64
        Next rw
    End With
End Sub

我会承认对名为 Workbook1 的工作表感到困惑。您可能需要调整Copy&amp ;;的来源和目标。糊。

Before and After