Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3296|回复: 8

[已解决][求助] 请问如何取列的相对值

[复制链接]
发表于 2012-3-13 11:47 | 显示全部楼层 |阅读模式
第一次用VBA,做了一个表,想根据J、K、O、P、Q、R、S、T、U、V列的值求W列的值
现在的问题是:我函数已经编好了,但是因为取值时取得是绝对地址(比如:Jt = Range("J3").Value
),虽然W3的计算结果是正确的,但是不能像不用VBA时一样,只要往下一拉,W4、W5、W6.........的结果就自动出来
求取相对地址的办法,我把表的附件打包上传了,请帮忙看一下

  1. Sub CottonMoney()
  2. Dim Jt As Integer   
  3. Dim Ju As Integer
  4. Dim Jv As Integer
  5. Dim Pprice As Integer   
  6. Dim Qprice As Integer
  7. Dim Rprice As Integer
  8. Dim Sprice As Integer
  9. Dim Ppercent As Single  
  10. Dim Qpercent As Single
  11. Dim Rpercent As Single
  12. Dim Spercent As Single
  13. Dim Weight As Single   
  14. Dim Money As Single

  15. Select Case Range("T3").Value   
  16.     Case 27 To 29
  17.         Jt = Range("J3").Value
  18.     Case 30 To 31
  19.         Jt = Range("J3").Value + 100
  20. End Select

  21. Select Case Range("U3").Value   
  22.     Case "A"
  23.         Ju = Jt + 50
  24.     Case "B"
  25.         Ju = Jt
  26.     Case "C"
  27.         Ju = Jt - 100
  28. End Select

  29. If Range("V3").Value < 2 Then   
  30.     Jv = Ju
  31. Else
  32.     Jv = Jv - 200 * (Range("V3").Value - 1)
  33. End If

  34. If WorksheetFunction.Max(Range("P3").Value, Range("Q3").Value, Range("R3").Value, Range("S3").Value) >= 0.8 Then
  35.     Ppercent = Range("P3").Value
  36.     Qpercent = Range("Q3").Value
  37.     Rpercent = Range("R3").Value
  38.     Spercent = Range("S3").Value
  39. ElseIf Range("P3").Value + Range("Q3").Value >= 0.8 Then
  40.     Ppercent = 0
  41.     Qpercent = Range("Q3").Value + Range("P3").Value
  42.     Rpercent = Range("R3").Value
  43.     Range("S3").Value = Range("S3").Value
  44. ElseIf Range("Q3").Value + Range("R3").Value >= 0.8 Then
  45.     Ppercent = 0
  46.     Qpercent = 0
  47.     Rpercent = Range("R3").Value + Range("P3").Value + Range("Q3").Value
  48.     Spercent = Range("S3").Value
  49. Else
  50.     Ppercent = 0
  51.     Qpercent = 0
  52.     Rpercent = 0
  53.     Spercent = Range("S3").Value + Range("P3").Value + Range("Q3").Value + Range("R3").Value
  54. End If

  55. If Range("K3").Value = "三级" Then  
  56.     Pprice = Jv + 300
  57.     Qprice = Jv
  58.     Rprice = Jv - 500
  59.     Sprice = Jv - 1300
  60. Else
  61.     Pprice = Jv + 800
  62.     Qprice = Jv + 500
  63.     Rprice = Jv
  64.     Sprice = Jv - 800
  65. End If

  66. Weight = Range("O3").Value

  67. Money = Weight * (Pprice * Ppercent + Qprice * Qpercent + Rprice * Rpercent + Sprice * Spercent)   

  68. Range("W3").Value = Money

  69. End Sub
复制代码
情况一览表(修改).rar (9.9 KB, 下载次数: 6)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-3-13 12:10 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-3-13 12:19 | 显示全部楼层
zjcat35 发表于 2012-3-13 12:10
你最好说下你W3的计算规则吧!!!!!

W3的计算就在代码里啊,关键是我取得值是绝对值
回复

使用道具 举报

发表于 2012-3-13 12:30 | 显示全部楼层
代码那么长,懒的看,看起来太累了!  
回复

使用道具 举报

发表于 2012-3-13 12:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 happym8888 于 2012-3-13 12:48 编辑

情况一览表(修改).rar (12.88 KB, 下载次数: 8)
回复

使用道具 举报

 楼主| 发表于 2012-3-13 16:10 | 显示全部楼层
happym8888 发表于 2012-3-13 12:44

真是太谢谢了,但是为什么计算结果不正确了呢,变成负数了
20120313160932.jpg
回复

使用道具 举报

发表于 2012-3-13 16:18 | 显示全部楼层
ragnarok 发表于 2012-3-13 16:10
真是太谢谢了,但是为什么计算结果不正确了呢,变成负数了

W3计算正确吗?和原表格里的不一样,用你原来的代码算出来和原表格里的也是不一样。
回复

使用道具 举报

 楼主| 发表于 2012-3-13 16:25 | 显示全部楼层
happym8888 发表于 2012-3-13 16:18
W3计算正确吗?和原表格里的不一样,用你原来的代码算出来和原表格里的也是不一样。

哎~~~~~我就是这么粗心,写错了,中间有个Ju写成jv了{:4712:}真的谢谢你{:812:}
回复

使用道具 举报

发表于 2012-3-13 16:52 | 显示全部楼层
ragnarok 发表于 2012-3-13 16:25
哎~~~~~我就是这么粗心,写错了,中间有个Ju写成jv了真的谢谢你

粗心大意神7神8可上不了天哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 02:18 , Processed in 0.311459 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表