2012-10-16 20 views
3

我是前線技術人員。對於宏編碼來說並不陌生,但我的大部分經驗都在WordPerfect宏中。我試圖編寫一個Excel宏,它將選擇一系列文件中的範圍並對其執行操作。期望的範圍是在一組常數列中,但是是一組可變的行。靜態值標記起始行和結束行,但這些行將隨每個數據文件而變化。XL XL宏可以選擇一個範圍可變的開始和結束行?

我遇到的問題是,當我錄製一個宏時,XL不會記錄我的光標移動(Ctrl-Up,Ctrl-Shift-Home等),它會記錄我正在處理的絕對單元格地址。由於起始和結束行將隨每個數據文件而變化,因此絕對單元格引用將不起作用。任何人都可以提供任何提示,告訴我該如何處理這個問題?

由於提前, 詹姆斯

回答

2
Dim rng as Range 

With ActiveSheet 
    'Ctrl+Arrow 
    Set rng = .Range("A10000").End(xlUp) 'CTRL+Up arrow 
    Set rng = .Range("A1").End(xlDown) 'CTRL+Down arrow 
    Set rng = .Range("Z1").End(xlToLeft) 'CTRL+Left arrow 
    Set rng = .Range("A1").End(xlToRight) 'CTRL+Right arrow 

    'Ctrl+Shift+Arrow 
    Set rng = .Range(.Range("A1"),.Range("A1").End(xlDown)) 
    Set rng = .Range(.Range("A1"),.Range("A1").End(xlToRight)) 

End With 
+0

太棒了!謝謝蒂姆,你搖滾! – user75900

2

首先,蒂姆的答案是完美的簡潔 - 你應該知道的另一個很酷的事情正在錄製與相對引用宏 - http://support.microsoft.com/kb/213740

你的挑戰是,當你錄製一個宏,它默認爲絕對參考,如果你按相對參考按鈕,你會得到你正在尋找的結果。

希望這也有幫助!

+0

+1非常酷的信息。 – nutsch

+0

謝謝約翰,也非常有幫助!絕對需要這個信息。 – user75900