我知道有這個很多職位,但他們都沒有實際的例子,所以,我明白了爲什麼我們應該避免,但不知道如何使用它。編碼在Excel的VBA不使用「選擇」 - 實際例子
我有這個表: enter image description here
我想要做的是選擇我的表的數據範圍,而不選擇頁眉和底部。
所以這是我想出了代碼:
Dim MyDataFirstCell
Dim MyDataLastCell
'Establish the Data Area
ActiveSheet.Range("B1").Select ' My Table starts on Column B
'In the example the table starts at B4, but the user could change for B3, B5, etc. So I want to assure it will find the table.
ActiveCell.Offset(1, 0).Select
Do While IsEmpty(ActiveCell)
DoEvents
ActiveCell.Offset(1, 0).Select
Loop
'The first cell (Header) has been found. I need to select the first cel of my data, so:
ActiveCell.Offset(1, 0).Select
DoEvents
MyDataFirstCell = ActiveCell.Address 'Get the first cell address of Data Area
'Now I need to select the last cell of my table:
Selection.End(xlDown).Select 'Get to Bottom Row of the data
Selection.End(xlToRight).Select 'Get to the last Column and data cell by heading to the righthand end
ActiveCell.Offset(-1, 0).Select ' Select the correct last cell
MyDataLastCell = ActiveCell.Address 'Get the Cell address of the last cell of my data area
'Now I want to select this area:
Range(MyDataFirstCell & ":" & MyDataLastCell).Select
你能告訴我的理想方式,而不使用「選擇」的代碼呢?
aditional的問題:
- 我有一個類似的表進行排序按字母名稱。如何按照優化的代碼進行排序?
- 如果我有同樣的表下方兩行或三行,是有可能做排序在同一時間或我應該讓兩個不同的宏是什麼?
感謝你的幫助。再次,我知道這可能是重複的,但沒有任何發佈真的幫助我。
有一個非常好的差不多佳能發佈所引用的所有時間:http://stackoverflow.com/questions/10714251/how-to-avoid -using-select-in-excel-vba-macros –
您可能還想要搜索找到[Last Used Cell]的最佳方法(http://stackoverflow.com/questions/11169445/error-in-finding- last-used-cell-in-vba「Canon Answer」)。 –
要找到最後一個單元格:http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba –