返回列表 上一主題 發帖

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

回復 8# GBKEE

      了解
       那下面這各有辦法說明嗎 還是只能用背的?
     sum(" & R.Offset(, i - 1).Address & ")這種用法我不會耶可以解說一下嗎
字典兩各字 還真難理解

TOP

本帖最後由 GBKEE 於 2011-3-3 19:53 編輯

回復 11# freeffly
這是vba的說明
expression.Offset(RowOffset, ColumnOffset)   
expression     必選。該運算式傳回 Range 物件。
RowOffset      選擇性的 Variant。用列數表示的區域位移 (正值、負數或零 (0))。正值表示向下位移,負值表示向上位移。預設值為 0。
ColumnOffset      選擇性的 Variant。用欄數表示的區域位移 (整數、負數或 0 (零))。正值表示右位移,負值表示左。預設值為 0。

expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
expression    必選。此運算式會傳回上述其中一個物件。
RowAbsolute    選擇性的 Variant。若為 True 則以絕對參照模式傳回對列的參照。預設值為 True
ColumnAbsolute    選擇性的 Variant。若為 True 則以絕對參照模式傳回對欄的參照。預設值為 True
ReferenceStyle    選擇性的 XlReferenceStyle
XlReferenceStyle 可以是這些 XlReferenceStyle 常數之一。
xlA1 預設值。使用xlA1 可傳回 A1 樣式的參照。
xlR1C1。使用 xlR1C1 可傳回 R1C1 樣式的參照。

External    選擇性的 Variant。若為 True 則傳回外部參照。若為 False 則傳回區域參照。預設值為 False
RelativeTo    選擇性的 Variant。如果 RowAbsoluteColumnAbsoluteFalse,且 ReferenceStylexlR1C1,則必須加入相對參照的起始點。本引數即為定義起始點的 Range 物件。

以下是我的說明''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
R.Offset(, 2)   ->R的範圍 向右移動2欄
R.Offset(1, 2) ->R的範圍 向右移動2欄 向下移動1列

R.Offset(, 2).Address     ->R的範圍 向右移動2欄的絕對位置
R.Offset(1, 2)).Address  ->R的範圍 向右移動2欄 向下移動1列的絕對位置

TOP

回復 12# GBKEE


   謝謝
    有點看懂了
   主要是R的區域的移動加總
    可以這樣說嗎
字典兩各字 還真難理解

TOP

回復 13# freeffly
對的

TOP

回復 14# GBKEE


    謝謝
字典兩各字 還真難理解

TOP

回復 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

回復 16# FAlonso


    我只要加總最後依區塊
      你的方式好像是針對"O"進行加總
      我剛看別的區塊加總好像有問題
      你的方式好像有點類似另一位大大但是又有些差異
      明天在告訴你差在哪裡
字典兩各字 還真難理解

TOP

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

TOP

回復 18# FAlonso


    檔案內我有說明
     請看檔案吧

浮動區域問題.rar (16.74 KB)

字典兩各字 還真難理解

TOP

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

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題