我正在做一个项目,其中excel中有大量数据。每个数据都有行和列的编号。我想按条件将这些数据移动到相应的工作表中。
Excel工作簿:
第一个工作表名称为Shortage Report
,它包含所有应按状态移动到相应工作表的数据。
示例:
Shortage Report
列A
具有城市名称:
Mumbai
Bangalore
Hyderabad
Kochi
Chennai
..... so on.
列CCD_ 4具有位置短名称。即
Mumbai - MU
Bangalore - BU
etc.
我想使用条件公式移动数据:
- 如果列
A = Mumbai
和列D = MU
,则移动到工作表MU
- 如果列
A = Bangalore
和列D = BU
,则移动到图纸BU
- 如果列
A = Chennai
和列D = CH
,则移动到工作表CH
你能帮我创建VB脚本,把这些数据在运行中移动到相应的表中吗。
这将对我有很大帮助。我花了将近3个小时来完成这项任务。
如果您有这样的数据:
A B C
1 Mumbai MU Some1
2 Bangalore BU Some2
3 Hyderabad HY Some3
4 Kochi KO Some4
5 Chennai CH Some5
6 Mumbai MU Some6
7 Bangalore BU Some7
8 Chennai CH Some8
9 Hyderabad HY Some9
10 Mumbai MU Some10
11 Mumbai MU Some11
12 Chennai CH Some12
13 Mumbai MU Some13
14 Bangalore BU Some14
15 Hyderabad HY Some15
16 Bangalore BU Some16
17 Chennai CH Some17
18 Bangalore BU Some18
19 Kochi KO Some19
20 Kochi KO Some20
21 Bangalore BU Some21
在一张名为Shortage Report
的图纸上。然后你可以使用这个代码:
Sub qwerty()
Dim i, Lastrow, j
Dim SheetName As String
Dim wb As Workbook
Set sr = Worksheets("Shortage Report")
Lastrow = sr.Range("B" & Rows.Count).End(xlUp).Row
If wb Is Nothing Then Set wb = ThisWorkbook
For j = 1 To Lastrow
SheetName = sr.Range("B" & j).Value
Application.DisplayAlerts = False
On Error Resume Next
If wb.Sheets(SheetName) Is Nothing Then
With ThisWorkbook
.Sheets.Add(After:=.Sheets(.Sheets.Count)).name = SheetName
End With
End If
Application.DisplayAlerts = True
sr.Range("A" & j & ":C" & j).Copy
i = wb.Sheets(SheetName).Range("A" & Rows.Count).End(xlUp).Row + 1
wb.Sheets(SheetName).Range("A" & i & ":C" & i).PasteSpecial Paste:=xlValues
Next j
End Sub
制作5张包含以下数据的表格:
A B C
1 Mumbai MU Some1
2 Mumbai MU Some6
3 Mumbai MU Some10
4 Mumbai MU Some11
5 Mumbai MU Some13
在名为MU
的图纸上
A B C
1 Bangalore BU Some2
2 Bangalore BU Some7
3 Bangalore BU Some14
4 Bangalore BU Some16
5 Bangalore BU Some18
6 Bangalore BU Some21
在名为BU
的图纸上
等等。