返回列表 上一主題 發帖

EXCEL高手 VBA 如何將需重覆的動作寫成迴圈

回復 1# junekevin
  1. Sub Ex()
  2.     Dim E As Range, Sh As Worksheet
  3.     Set Sh = Sheets("Sheet2")   '設立物件變數
  4.     For Each E In Sh.Range("A1:A" & Sh.[A1].End(xlDown).Row)
  5.     'For Each E In  -> 依序處理 物件集合 的 子物件
  6.     'Sh.[A1].End(xlDown).Row ->  Sh的 A1往下到最後有資料的列位->數字
  7.         With Sheets("SHEET1")    '在物件中
  8.             .[A1].Value = E
  9.             .PrintOut            '印列
  10.         End With
  11.     Next
  12. End Sub
複製代碼

TOP

回復 4# freeffly
.[A1].Value = E   '(Value,內容->值)
.PageSetup.PrintArea = E.Address->傳回物件(Address) -> 位置

VBA的說明
PrintArea 屬性
傳回或設定要列印的範圍,此為使用巨集語言中 A1 樣式參照的字串。讀/寫 String(字串)
expression.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
http://forum.twbts.com/thread-2741-2-1.html

TOP

所以若在後面加上address效果會與 .[A1].value=E  相同嗎?freeffly 發表於 2011/3/6 20:38

意思是如此嗎?
[A1].value=E.address  -> [A1]=E的位置 可以ㄚ

TOP

回復 8# freeffly
2樓的程式碼 是針對樓主的發問所寫  

1.[A1].Value = E     -> ( [A1].Value=E的內容(值) )  ->  將[A1]的內容替換為 E 的內容 (假設為E= 101)

2 PageSetup.PrintArea 為設定工作表印列的範圍
PageSetup.PrintArea =E.ADDRESS -> 工作表印列的範圍= 字串 (E的範圍 假設為 $A$1)

兩句的用法是不同的
   

TOP

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