|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub Macro2()
'
' Macro2 Macro
'
'此VBA出现的是出错,第二个On Error 报错了,无法运行
On Error Resume Next
'
Dim lie
lie = Application.WorksheetFunction.CountA(Worksheets("原始数据").Range("A:A")) '检查原始数据表的行数,可做循环0
'先设置原始数据表中的后续通过程序复制数据后,新增需要用到的字段头
Worksheets("原始数据").Range("M1").Value = "单品实额奖励"
Worksheets("原始数据").Range("N1").Value = "单品比例奖励"
Worksheets("原始数据").Range("O1").Value = "单品不计常规业绩"
Worksheets("原始数据").Range("P1").Value = "单品BA名称"
Worksheets("原始数据").Range("Q1").Value = "品牌实额奖励"
Worksheets("原始数据").Range("R1").Value = "品牌比例奖励"
Worksheets("原始数据").Range("S1").Value = "品牌不计常规业绩"
Worksheets("原始数据").Range("T1").Value = "品牌BA名称"
Worksheets("原始数据").Range("U1").Value = "套餐实额奖励"
Worksheets("原始数据").Range("V1").Value = "套餐比例奖励"
Worksheets("原始数据").Range("W1").Value = "套餐不计常规业绩"
Worksheets("原始数据").Range("X1").Value = "套餐BA名称"
Worksheets("原始数据").Range("Y1").Value = "BA名称"
Worksheets("原始数据").Range("Z1").Value = "总奖励"
Worksheets("原始数据").Range("AA1").Value = "总不计常规业绩"
'Dim I As Long '设置一个参数,这个使用在循环中行数用的,由于行数将过万故用Long
' I = 2 '设置起止为第二行
Dim I As Long '设置一个变量使用在循环过度计数,由于行数将过万故用Long
For I = 2 To lie Step 1 '进入循环,步进为1
' 设置M列
Worksheets("原始数据").Range("M" & I).Select '选择M2,其实可以去掉,纯粹为了检测
' 先从M列开始,单品实额奖励
' 如果错误则跳过并进入后面的操作
'找不到就跳到Merr那里设置M2的值为0
Worksheets("原始数据").Range("M" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("D" & I), Worksheets("单品奖励").Range("A:E"), 3, 0) * Worksheets("原始数据").Range("H" & I)
'通过跳转到进行下一格进行操作
' Exit Sub '退出此过程,但实际上可以使用GoTo跳转
Merr:
'出错则将M2值为0
' N列,单品比例奖励
N:
Worksheets("原始数据").Range("N" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("D" & I), Worksheets("单品奖励").Range("A:E"), 4, 0) * Worksheets("原始数据").Range("I" & I)
'通过跳转到进行下一格进行操作
O:
Worksheets("原始数据").Range("O" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("D" & I), Worksheets("单品奖励").Range("A:E"), 5, 0)
P:
Worksheets("原始数据").Range("P" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("D" & I), Worksheets("单品奖励").Range("A:F"), 6, 0)
Q:
Worksheets("原始数据").Range("Q" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("品牌奖励").Range("A:D"), 2, 0) * Worksheets("原始数据").Range("H" & I)
R:
Worksheets("原始数据").Range("R" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("品牌奖励").Range("A:D"), 3, 0) * Worksheets("原始数据").Range("I" & I)
S:
Worksheets("原始数据").Range("S" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("品牌奖励").Range("A:D"), 4, 0)
T:
Worksheets("原始数据").Range("T" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("品牌奖励").Range("A:E"), 5, 0)
U:
Worksheets("原始数据").Range("U" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("套餐奖励").Range("B:E"), 2, 0) * Worksheets("原始数据").Range("H" & I)
V:
Worksheets("原始数据").Range("V" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("套餐奖励").Range("B:E"), 3, 0) * Worksheets("原始数据").Range("I" & I)
W:
Worksheets("原始数据").Range("W" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("套餐奖励").Range("B:E"), 4, 0)
X:
Worksheets("原始数据").Range("X" & I).Value = Application.WorksheetFunction.VLookup(Worksheets("原始数据").Range("C" & I), Worksheets("套餐奖励").Range("B:F"), 5, 0)
Y:
Worksheets("原始数据").Range("Y" & I).Value = Worksheets("原始数据").Range("P" & I).Value & Worksheets("原始数据").Range("T" & I).Value & Worksheets("原始数据").Range("X" & I).Value
' 下面是对Z列的数据
Worksheets("原始数据").Range("Z" & I).Value = Worksheets("原始数据").Range("M" & I).Value + Worksheets("原始数据").Range("N" & I).Value + Worksheets("原始数据").Range("Q" & I).Value + Worksheets("原始数据").Range("R" & I).Value + Worksheets("原始数据").Range("U" & I).Value + Worksheets("原始数据").Range("V" & I).Value
' 下面一段是判断数据,是对AA列数据的填入
Dim AAtest As Long
AAtest = Worksheets("原始数据").Range("O" & I).Value + Worksheets("原始数据").Range("S" & I).Value + Worksheets("原始数据").Range("W" & I).Value
If AAtest > 0 Then
Worksheets("原始数据").Range("AA" & I).Value = Worksheets("原始数据").Range("I" & I).Value
Else
Worksheets("原始数据").Range("AA" & I).Value = 0
End If
'I = I + 1 '行数不断增加
Next I '退出循环
End Sub |
|