Excle  VBA  函数问题
excle吧
全部回复
仅看楼主
level 2
先生Gu 楼主
Sub 总额()
*
*******************************************************
*
*单元格中对应的参数
*
*镶牙工作量 c:C5:Cn
*其他工作量 d:D5:Dn
*总 工作 量 e:E5:En
*提 成比 例 f:F5:Fn
*挂 号票 数 g:G5:Gn
*保 险 h:H5:Hn
*职 务补 贴 i:I5:In
*公 差 j:J5:Jn
*其 他 k:K5:Kn
*加 工 费 l:L5:Ln
*镶 牙 费 m:M5:Mn
*纤 维 桩 n:N5:Nn
*内 加工 量 o:O5:On
*总 额 p:P5:Pn
*
*******************************************************
*
*定义计算参数
*
*e :总工作量,总工作量e=镶牙工作量c+其他工作量d
*T :提成比例;分为3个极差T1,T2,T3
*T1:提成比例T1,为固定值可手动更改
*T2:提成比例T2,为固定值可手动更改
*T3:提成比例T3,为固定值可手动更改
*X :加工费在" 3w 以内"的计算方法:X=加工费l/镶牙费m*3w;例如:总工作量为2w,则X=加工费l/镶牙费m*2w
*Y :加工费在"3-5w之间"的计算方法:Y=加工费l/镶牙费m*2w;例如:总工作量为4w,则Y=加工费l/镶牙费m*( 4w-3w)
*Z :加工费在" 5w 以上"的计算方法:Z=加工费/镶牙费*以上;例如:总工作量为6w,则Z=加工费l/镶牙费m*( 6w-5w)
*S :根据工作量不同,得到的S的数也不同;分为3个档次
*S1:3w<总工作量:S=S1=(总工作量*90%-X)*T1
*S2:3w<总工作量<5w:S=S2=(3w*90%-加工费l/镶牙费m*3w)*T1+((总工作量e-3w)*90%-Y)*T2
*S3:5w<工作量:S=S3=(3w*90%-加工费l/镶牙费m*3w)*T1+(2w*90%-加工费l/镶牙费m*2w)*T2+((总工作量e-5w)*90%-Z)*T3
*U :与其他工作量有关,U=其他工作量d*90%*T
*V :与纤维桩个数有关,V=纤维桩n*220*90%*T
*W :与内加工量有关,W=内加工量o*65%*T
*Q :与挂号票数有关,Q=挂号票数g*10%
*总额 p:总额 p=G+H+K+L+M+保险 h+职务补贴 i+公差(chai) j+其他 k
*
*******************************************************
*
*获取单元格中录入(包含计算)的数并赋给相应的参数变量
*计算总额p
*
*获取单元格中的数,并赋给新变量,用于计算
********可以通过更改表容量来增加计算范围*******
********如需更改,把("E5:E26"),("G5:G26")....的26 变大一点就好*********
d = Range("D5:D26") *其他工作量
e = Range("E5:E26") *总工作量
g = Range("G5:G26") *挂号票数
h = Range("H5:H26") *保险补贴
i = Range("I5:I26") *职务补贴
j = Range("J5:J26") *公差补贴
k = Range("K5:K26") *其他
l = Range("L5:L26") *加工费
m = Range("M5:M26") *镶牙费
n = Range("N5:N26") *纤维桩
o = Range("O5:O26") *内加工量
* p = Range("P5:P26") *个人所得
*
*提成比例为T1
t1 = Range("T4:T4")
*提成比例为T2
t2 = Range("T5:T5")
*提成比例为T3
t = t3 = Range("T6:T6")
Dim d As String
*方法:计算总额
*
For r = 1 To 22 *******增加员工时把这个数响应的调大一样的范围!!!*******
If e(r, 1) >= 0 And e(r, 1) <= 30000 Then
****** If e(r, 1) = 0 Then
****** *输出棕色行为0的数,在总额中显示为 0
******
****** Range("P5:P26") = 0 *XXXXXXXXXXXXXXXXXXXXXXXXX
*****
****** Else
*总工作量<3w
x(r, 1) = l(r, 1) / m(r, 1) * e(r, 1)
*计算总额
S(r, 1) = (e(r, 1) * 0.9 - x(r, 1)) * t1 *S1 情况下
u(r, 1) = d(r, 1) * 0.9 * t1
v(r, 1) = n(r, 1) * 220 * 0.9 * t1
w(r, 1) = o(r, 1) * 0.65 * t1
q(r, 1) = g(r, 1) * 0.1
p(r, 1) = S(r, 1) + u(r, 1) + v(r, 1) + w(r, 1) + q(r, 1) + h(r, 1) + i(r, 1) + j(r, 1) + k(r, 1)
*将总额p在P列中显示
Range("P5:P26") = p *XXXXXXXXXXXXXXXXXXXXXXXXX
*
ElseIf e(r, 1) > 30000 And e(r, 1) <= 50000 Then
*总工作量<5w
y(r, 1) = l(r, 1) / m(r, 1) * (e(r, 1) - 30000)
*计算总额
S(r, 1) = (30000 * 0.9 - l(r, 1) / m(r, 1) * 30000) * t1 + ((e(r, 1) - 30000) * 0.9 - y(r, 1)) * t2 *S2 情况下
u(r, 1) = d(r, 1) * 0.9 * t2
v(r, 1) = n(r, 1) * 220 * 0.9 * t2
w(r, 1) = o(r, 1) * 0.65 * t2
q(r, 1) = g(r, 1) * 0.1
p(r, 1) = S(r, 1) + u(r, 1) + v(r, 1) + w(r, 1) + q(r, 1) + h(r, 1) + i(r, 1) + j(r, 1) + k(r, 1)
*将总额p在P列中显示
Range("P5:P26") = p *XXXXXXXXXXXXXXXXXXXXXXXXX
*
Else
*总工作量>5w
z(r, 1) = l(r, 1) / m(r, 1) * (e(r, 1) - 50000)
*计算总额
S(r, 1) = (30000 * 0.9 - l(r, 1) / m(r, 1) * 30000) * t1 + (20000 * 0.9 - l(r, 1) / m(r, 1) * 20000) * t2 + ((e(r, 1) - 50000) * 0.9 - z(r, 1)) * t3 *G3情况下
u(r, 1) = d(r, 1) * 0.9 * t3
v(r, 1) = n(r, 1) * 220 * 0.9 * t3
w(r, 1) = o(r, 1) * 0.65 * t3
q(r, 1) = g(r, 1) * 0.1
p(r, 1) = S(r, 1) + u(r, 1) + v(r, 1) + w(r, 1) + q(r, 1) + h(r, 1) + i(r, 1) + j(r, 1) + k(r, 1)
*将总额p在P列中显示
Range("P5:P26") = p *XXXXXXXXXXXXXXXXXXXXXXXXX
End If
Next
End Sub
2014年08月21日 07点08分 1
level 2
先生Gu 楼主
有  能看懂VBA的大神吗?本人Q:515256583,求帮助[乖]
2014年08月21日 07点08分 2
level 1
不知道想要求助什么?是根据这个来编写代码?
2014年08月21日 13点08分 3
1