標題:
請問解釋這段程式並改寫,感謝!
[打印本頁]
作者:
av8d
時間:
2017-7-19 21:56
標題:
請問解釋這段程式並改寫,感謝!
Sheets("工作表").Cells(Rows.Count, "A").End(3)(2, 1).Resize(1, 1) = Array(Date)
請問以上的各個單字的意思為何?
改如何改寫成第1列第F欄開始向右填寫?
爬文一直沒有下落,想到這裡的老師們都很熱心,萬分感激!
作者:
li_hsien
時間:
2017-7-20 14:14
本帖最後由 li_hsien 於 2017-7-20 14:18 編輯
回復
1#
av8d
我也是第一次看到這種寫法
Sheets("工作表").Cells(Rows.Count, "A").End(3)(2, 1).Resize(1, 1) = Array(Date)
小弟一步步測試
改成下面這樣可能會比較好懂
Sheets("工作表").Cells(65536,"A").End(xlup).Offset(1,0).Resize(1,1)=Array(Date)
Rows.Count=65536 -> 總欄數
End(3)=End(xlup) -> 有下往上 指到有資料的儲存格
Sheets("工作表").Cells(Rows.Count, "A").End(3)(2, 1) = Sheets("工作表").Cells(65536,"A").End(xlup).Offset(1,0) ->可以查看看Offset的用法
Resize(1, 1) -> 儲存格位置沒有變化,設定(1,1)這應該沒有什麼作用,可以改成其他數字觀察看看 e.g. Resize(2,3)
Array(Date) -> 就是把最後Resize的位置全都填入日期
建議您可以分段用.select觀察目前儲存格的位置
可以比較了解運作過程
至於"改寫成第1列第F欄開始向右填寫?"
是像下方這樣嗎?
Sheets("工作表").Cells(Rows.Count, "F").End(2)(2, 1).Resize(1, 1) = Array(Date)
Sheets("工作表").Cells(1,"F").End(xlToRight).Offset(1,0).Resize(1,1)=Array(Date)
但是按此作法向右寫,如果右側完成沒有其他資料會出錯。
作者:
av8d
時間:
2017-7-20 15:30
回復
2#
li_hsien
謝謝老師,原來有正確寫法,萬分感激!
作者:
GBKEE
時間:
2017-7-21 15:55
本帖最後由 GBKEE 於 2017-7-22 04:47 編輯
回復
3#
av8d
Option Explicit
Sub Ex()
Dim Rng As Range
Set Rng = [D15]
MsgBox Rng(1, 1).Address
MsgBox Rng.Cells(1, 1).Address
MsgBox Rng.Range("a1").Address
MsgBox Rng.Offset(0).Address
End Sub
複製代碼
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)