... <看更多>
「vba autofill」的推薦目錄:
vba autofill 在 VBA-Docs/Excel.Range.AutoFill.md at master - GitHub 的推薦與評價
... make changes, then submit a PR. For more resources, see README.MD - VBA-Docs/Excel.Range.AutoFill.md at master · MicrosoftDocs/VBA-Docs. ... <看更多>
vba autofill 在 Fastest way to "Replace" "auto fill" and then loop in Excel VBA 的推薦與評價
Just indenting the code and removing the excessive whitespace you have yields something significantly more readable (after also fixing the ... ... <看更多>
vba autofill 在 Re: [算表] EXCEL VBA Range.Select 選取指令問題- 看板Office 的推薦與評價
我想先說明Select和Selection是什麼
Select是Range物件底下的一個"方法"
對應到鍵鼠操作就是"選取"的這個動作
如:Range("L3").Select,就是選取L3這個儲存格(Range物件)的意思
而Selection是Application物件底下的一個"屬性"
會回傳目前選取的物件
有可能是一個或多個儲存格(Range物件),也有可能是一張圖片之類
以我自己的經驗,只有在人機互動的狀況下才會用到Select和Selection
例如自創一個快捷鍵將選取的儲存格上色、修改數值格式等等
而在一般自動化的過程中,不太需要叫excel把某個物件選起來,再對該物件做事
直接對某物件下指令即可
現在來看看這行程式碼有什麼問題:
Selection.AutoFill Destination:=Range.Offset(1).Select
Selection.AutoFill 沒有問題,有可能需要操作的儲存格是不特定的,必須由人工指定
Destination:= 也沒有問題,是AutoFill方法中的一個變數名稱
Range.Offset(1).Select 這裡就有兩個問題了
1.Range需要指定參照才會回傳一個Range物件
舉個例來說,在班級裡點名時,"座號3號.起立"才會是某位特定同學站起來
如果只有說"座號.起立",大家應該會一臉黑人問號
2.這個是AutoFill方法中的變數,是為了指定自動填入的範圍
所以這個變數要輸入的是一個Range物件
但Select是叫excel把那個Range物件選起來
excel反而會不知道選起來之後要幹麻
正確的用法就是像你錄製的這個:
Selection.AutoFill Destination:=Range("L3:L53")
到這裡,你真正的問題應該是,要怎麼指定資料末端的儲存格?
方式很多,詳見上篇S大的推文
簡單說就是依照你資料的特性,利用S大提到的那些方法、函數找到最後那個儲存格
我自己習慣一招打天下,再依資料做調整
Range("L3", Range("L" & Rows.Count).End(xlUp))
從L3開始到 Range("L" & 列的總數).End(xlUp)
從L3開始到 L欄最後一個儲存格.End(xlUp)
從L3開始到 L欄最後一個有值的儲存格
前提是L欄最後一個儲存格是空的
所以如果資料會塞那麼滿或那麼後面的話,使用上要特別注意
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.50.225 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1576084152.A.4D4.html
... <看更多>