返回列表 上一主題 發帖

[轉貼] VBA的寫作技巧與增進效能

對新手的我受益良多,感謝分享,謝謝

TOP

VBA的寫作技巧與增進效能

經由錄製產生的巨集,通常程式碼都會含有很多 Select,甚至往後自己寫的程式也 ...
Hsieh 發表於 2010-4-30 23:06



    睇完版主的講解就發覺我做的巨集真的有很多select, selection等字眼,因為一開始時就是利用錄制巨集的方法而不斷増加設備
    如果有 Worksheets("Sheet1").PageSetup.PrintArea = "$A$1:$C$60" 那 Range("A1:C60").Select 是多餘的?

TOP

本帖最後由 blue2263 於 2014-4-12 04:43 編輯

請教版主
(a工作表)範圍資料,貼到(a工作表)其它位置,我用下列程式碼,是可行的,但如果要將(a工作表)範圍值,貼到(b工作表)範圍,程式碼應要如何改

Range(Cells(2, y欄 - x欄數), Cells(z列, y欄)) = Range(Cells(2, y欄 - x欄數), Cells(z列, y欄)).Value

TOP

看到開頭就知道一定要推了!!
say

TOP

回復 1# Hsieh
所以樓主的建議是寫VBA時儘量是用敲的,而不是用錄製的嗎?但對像我這種新手而言,有很多語法如果不用錄製就無法寫出

TOP

除非程式就是要依使用者選取的物件來做動作,否則 Select 和 Selection 都是多餘的.非常同意。
之前只會利用錄製巨集,所以以為都是這樣做,看過論壇理的一些高手大大的例子才知道不需要這樣。除非需要利用當前選定時才需要這樣應用。
人生只有三天,只有活在今天最踏實

TOP

VBA 不會自動收垃圾嗎?

最後兩行沒寫, 不會自動釋放記億體嗎?

TOP

謝謝大大,受教了,又學習到一課

TOP

感謝版主分享
我剛開始使用VBA的確也是把錄製到的巨集照單全收
不過 現在已經能寫出比較有效率的CODE了

TOP

回復 1# Hsieh
請問不同的Sheet及Range,得不到正確結果!?應該入何修正:L
Sheets(a1).Range("A4:B36") = Sheets(a2).Range("B5:B37,E5:E37")

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題