返回列表 上一主題 發帖

[發問] (已解決)浮動區域的作業

回復 1# freeffly
如果樓主有空的話,可否試試我這個作品,有錯的話請通知我讓我改正
  1. Sub abc()
  2. Dim myrange As Range, downlimit As Range, uplimit As Range, rightlimit As Range, myregion As Range
  3. Dim a, h, i

  4. Set myrange = Range("a65536").End(xlUp)

  5. Do
  6. Set downlimit = myrange
  7. Set uplimit = downlimit.End(xlUp)
  8. Set rightlimit = downlimit.End(xlToRight)
  9. Set myregion = Range(uplimit, rightlimit)

  10. h = 0
  11. i = 0

  12. For Each a In Range(uplimit, downlimit)
  13. If a.Offset(, 6) = "O" Then
  14.     h = h + a.Offset(, 7).Value
  15.     i = i + a.Offset(, 8).Value
  16. End If
  17. Next

  18. If h <> 0 Then
  19. downlimit.Offset(1, 6) = "小計"
  20. downlimit.Offset(1, 7) = h
  21. downlimit.Offset(1, 8) = i
  22. downlimit.Offset(1, 9) = h / i
  23. downlimit.Offset(1, 7).Interior.ColorIndex = 6
  24. downlimit.Offset(1, 8).Interior.ColorIndex = 6
  25. downlimit.Offset(1, 9).Interior.ColorIndex = 6
  26. End If

  27. Set myrange = uplimit.End(xlUp)
  28. Loop While myrange.Address <> "$A$1"
  29. End Sub
複製代碼
80 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 17# freeffly
我猜想或許工作表中有很多區塊,當中一些又要對O作計算,所以寫成了loop
只對最下層區域作小計,把7/33/34行的程式刪掉便行
80 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 19# freeffly
把我的程式修改一下.變成
80 字節以內
不支持自定義 Discuz! 代碼

TOP

  1. Sub revisedprogram()

  2. Dim myrange As Range, downlimit As Range, uplimit As Range, rightlimit As Range, myregion As Range

  3. Dim a, H, i
  4. Set myrange = Range("a65536").End(xlUp)

  5. Set downlimit = myrange
  6. Set uplimit = downlimit.End(xlUp)
  7. Set rightlimit = downlimit.End(xlToRight)
  8. Set myregion = Range(uplimit, rightlimit)

  9. H = 0
  10. i = 0

  11. For Each a In Range(uplimit, downlimit)
  12. 'if a.offset(,5) = "??材料倉" and a.offset(,6) = "?" ? => 自己填入所需的篩選項
  13. H = H + a.Offset(, 7).Value
  14. i = i + a.Offset(, 8).Value
  15. 'end if
  16. Next

  17. downlimit.Offset(1, 6) = "小計"
  18. downlimit.Offset(1, 7) = H
  19. downlimit.Offset(1, 8) = i
  20. downlimit.Offset(1, 9) = H / i
  21. downlimit.Offset(1, 7).Interior.ColorIndex = 6
  22. downlimit.Offset(1, 8).Interior.ColorIndex = 6
  23. downlimit.Offset(1, 9).Interior.ColorIndex = 6

  24. End Sub
複製代碼
應該這樣吧,如果沒有事先篩選,把綠色字串最初的那個 ' 拿掉,輸入所需就行
80 字節以內
不支持自定義 Discuz! 代碼

TOP

        靜思自在 : 原諒別人就是善待自己。
返回列表 上一主題