返回列表 上一主題 發帖

請問解釋這段程式並改寫,感謝!

本帖最後由 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)
但是按此作法向右寫,如果右側完成沒有其他資料會出錯。
用功到世界末日那一天~~~

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題