Excel精英培训网

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

[已解决]I列中用黄色填充的数据进行相加,计算结果填入K列

[复制链接]
发表于 2017-8-29 08:55 | 显示全部楼层 |阅读模式
I列中用黄色填充的数据进行相加,计算结果填入K列
最佳答案
2017-8-29 11:26
  1. Sub aaa()
  2. Dim arr, brr, i&
  3. arr = Range("i4:i" & [i65536].End(3).Row)
  4. ReDim brr(1 To UBound(arr) - 1, 1 To 3)
  5. For i = 1 To UBound(arr) - 1
  6.   brr(i, 1) = arr(i, 1) + arr(i + 1, 1)
  7.   brr(i, 2) = brr(i, 1) - IIf(brr(i, 1) > 16, 16, 0)
  8.   brr(i, 3) = IIf(brr(i, 2) < 7, brr(i, 2) + 10, "")
  9. Next i
  10. [k6].Resize(UBound(brr), 2) = brr
  11. [n6].Resize(UBound(brr)) = Application.Index(brr, , 3)
  12. End Sub
复制代码

06.zip

40.46 KB, 下载次数: 10

发表于 2017-8-29 11:26 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. Dim arr, brr, i&
  3. arr = Range("i4:i" & [i65536].End(3).Row)
  4. ReDim brr(1 To UBound(arr) - 1, 1 To 3)
  5. For i = 1 To UBound(arr) - 1
  6.   brr(i, 1) = arr(i, 1) + arr(i + 1, 1)
  7.   brr(i, 2) = brr(i, 1) - IIf(brr(i, 1) > 16, 16, 0)
  8.   brr(i, 3) = IIf(brr(i, 2) < 7, brr(i, 2) + 10, "")
  9. Next i
  10. [k6].Resize(UBound(brr), 2) = brr
  11. [n6].Resize(UBound(brr)) = Application.Index(brr, , 3)
  12. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
爷们679 + 1

查看全部评分

回复

使用道具 举报

发表于 2017-8-29 15:46 | 显示全部楼层
回复

使用道具 举报

发表于 2017-8-29 15:56 | 显示全部楼层
  1. Sub ppp()
  2. Dim i%, rw%
  3. [k4:n10000] = ""
  4. rw = [i655336].End(3).Row
  5. For i = 5 To rw
  6.     Range("k" & i + 1) = Cells(i, 9) + Cells(i - 1, 9)
  7. Next
  8. For i = 6 To rw + 1
  9.    If Cells(i, 11) < 17 Then
  10.    Cells(i, 12) = Cells(i, 11)
  11.    Else
  12.    Cells(i, 12) = Cells(i, 11) - 16
  13.    End If
  14.    If Cells(i, 12) < 7 Then Cells(i, 14) = Cells(i, 12) + 10
  15.    If Cells(i, 12) > 6 And Cells(i, 12) < 11 Then Cells(i, 14) = ""
  16. Next
  17. MsgBox "计算完毕!"
  18. End Sub
复制代码

计算.rar (77.46 KB, 下载次数: 2)

评分

参与人数 1 +1 收起 理由
爷们679 + 1 赞一个

查看全部评分

回复

使用道具 举报

发表于 2017-8-29 18:46 | 显示全部楼层
本帖最后由 idnoidno 于 2017-8-29 18:48 编辑

我用SELECT CASE
  1. <div class="blockcode"><blockquote>Option Explicit
  2. Sub tw()
  3. Dim i%, irow%, j%, jrow%
  4. Range("j:j,l:l,m:m").ClearContents
  5. irow = [i65536].End(xlUp).Row
  6. For i = 4 To irow
  7.     Cells(i + 2, 10) = Cells(i, 9) + Cells(i + 1, 9)
  8.     Select Case Cells(i + 2, 10)
  9.         Case Is > 16
  10.             Cells(i + 2, 12) = Cells(i + 2, 10) - 16
  11.         Case Is > 0
  12.             Cells(i + 2, 12) = Cells(i + 2, 10)
  13.     End Select
  14. Next i

  15. jrow = [j65536].End(xlUp).Row
  16. For j = 6 To jrow
  17.     Select Case Cells(j, 12)
  18.         Case Is > 7
  19.             Cells(j, 13) = ""
  20.         Case Else
  21.              Cells(j, 13) = Cells(j, 12)
  22.     End Select
  23. Next j
  24. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
爷们679 + 1

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 05:49 , Processed in 0.361144 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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