返回列表 上一主題 發帖

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

本帖最後由 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

回復 8# GBKEE

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

TOP

回復 9# Hsieh


    是的我要計算的區塊已經用空白列區隔
     所以是大大的簡單方式
     不過再這裡看到很多不一樣的處理方式
     真是還有的學
     謝謝喔
字典兩各字 還真難理解

TOP

區塊既以空白列區隔
r = [A65536].End(xlUp).End(xlUp).Row
[A65536].End(xlUp).Offset(1, 6).Resize(, 4) = Array("小計", "=SUM(R" & r & "C:R[-1]C)", "=SUM(R" & r & "C:R[-1]C)", "=RC[-2]/RC[-1]")
學海無涯_不恥下問

TOP

本帖最後由 GBKEE 於 2011-3-3 14:39 編輯
回復  GBKEE
Range("G5:G" & Rows.Count) 可以用Columns("G:G")取代嗎 這兩各方式有哪裡不同嗎?
...
freeffly 發表於 2011/3/3 12:17

是可以用Columns("G:G")來取代的,但如g1:g3有數字 會失掉準確性
End(3)(2).Resize(, 4)=>.End(xlUp).Cells(2, 1).Resize(1, 4)

TOP

回復 5# oobird
我的資料基本上是計算"o"
但是第一塊區域也有可能含有"o"的部份(不列入計算的部份)
所以我原本想的方式是從第二塊區域去計算 並且計算第二塊區域的列數
不過還是從各位大大的方式看到自己沒用過的方式
可以問一下End(3)(2).Resize(, 4) 這各是什麼意思嗎?
字典兩各字 還真難理解

TOP

回復 3# GBKEE


    Range("G5:G" & Rows.Count) 可以用Columns("G:G")取代嗎 這兩各方式有哪裡不同嗎?
    sum(" & R.Offset(, i - 1).Address & ")這種用法我不會耶可以解說一下嗎
字典兩各字 還真難理解

TOP

mrow = [g:g].Find("o", , , 1).Row
[g65536].End(3)(2).Resize(, 4) = Array("小計", "=sum(r" & mrow & "c:r[-1]c)", "=sum(r" & mrow & "c:r[-1]c)", "=rc[-2]/rc[-1]")

TOP

我只想對下面那塊區域做小計的動作
不過這各方法也是我想知道的
謝謝

如果只想對最下面的區域做小計動作
要做哪一各修改呢?
字典兩各字 還真難理解

TOP

回復 1# freeffly
  1. Sub EX()
  2.     Dim R As Range, i As Integer
  3.     For Each R In Sheet3.Range("G5:G" & Rows.Count).SpecialCells(xlCellTypeConstants).Areas
  4.         R.Cells(R.Count + 1, 1) = "小計"
  5.         For i = 2 To 4
  6.              R.Cells(R.Count + 1, i) = "=sum(" & R.Offset(, i - 1).Address & ")"
  7.         Next
  8.     Next
  9. End Sub
複製代碼

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題