我想在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
但第二个不起作用
答案 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 ;;的来源和目标。糊。