- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2025-7-5
|
本帖最後由 luhpro 於 2010-12-22 22:22 編輯
你的檔案裡說 :
AB6作為填滿的開始列,就是(A5)的位置
AB7作為填滿的間隔列數
從A3開始往下填滿,請問程式為何?
上面的敘述在邏輯上有些怪怪的,
以 A5 作為填滿的開始列,
填滿的間隔列數是 10
再看你特地將 A5、A15、A25 框起來,
我猜你的意思是說填滿的對象是你框起來的那些儲存格A5、A15、A25、....
但你底下又補充說要以 A3 為填滿開始的儲存格,
3 + 10 = 13
怎麼樣也不會對應到 A15 呢.
那麼到底你是要對 A3、A13、A23、... 還是 A5、A15、A25、... 做填滿呢?
另外若是你想用 AutoFill 函數的話, 該函數的說明裡有提到 :
Destination 必選的 Range 物件類型。要填滿的儲存格。目標範圍必須包括來源範圍。
而在 Range 裡又有定義 :
代表某一儲存格、某一欄、某一列、某一指定範圍 (該指定範圍可包含一個或若干連續儲存格範圍) 或者某一立體範圍。
所以 AutoFill 的填滿動作是不能跳行或是跳列填滿的. (故而你上面說的 "填滿的間隔列數是 10" 的情形並不適用)
比較恰當可行的方式是用
For ... Step 10
.
.
.
Next
或是用
While iI < xxx
.
.
.
iI = iI + 10
Wend
的方式來實做.
至於想用程式來達到取得上述參照值的儲存格內容方式倒是不困難
想透過 AB6 找到 A5 可用如下方法 :
Sub AFill()
Dim iSRow%, iRow%, iTarget%
With Sheets("Sheet1")
iSRow = .[AB6]
iRow = .Range(.[A3], .Cells(.[A3].End(xlDown), 1)).Find(iSRow, LookIn:=xlValues).Row
iTarget = .Cells(iRow, 1) '這個就是 A5 的位置, 只要變更後面的 1 對應到想 Fill 的欄位數即可,例如 : M5 就是 .Cells(iRow, 13)
End With
End Sub
取得 iRow 後,
只要於迴圈內依次增加此值即可 "跳列" 對應到需要填滿的儲存格. |
|