返回列表 上一主題 發帖

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

回復 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。如果 RowAbsolute 和 ColumnAbsolute 為 False,且 ReferenceStyle 為 xlR1C1,則必須加入相對參照的起始點。本引數即為定義起始點的 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

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題