用模式search和复制移动单元格

我想在VBA中实现以下function

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

输出工作簿2

我想有以下格式的输出,以便我可以生成具有相同X轴的graphics

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

我使用了两个函数,第一个将两列从工作簿1移动到工作簿2

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

第二个function是:

 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 

但是第二个不工作

我把你的两个操作放到一个子过程中。 首先对整个块执行复制,然后根据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的工作表上存在一些混淆。 您可能需要调整复制和粘贴的来源和目标。

之前和之后