Я знаю, что есть много сообщений об этом, но ни один из них не имеет практических примеров, поэтому я понимаю, почему мы должны избегать, но не как его использовать.Кодирование в Excel-VBA без использования «.Select» - Практический пример
У меня есть эта таблица: 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
Не могли бы вы показать мне идеальный способ закодировать это без использования «.select»?
фильма вопросов:
- У меня есть аналогичная таблица, которая сортирует по алфавиту имени. Как я могу выполнить сортировку, следуя оптимизированному коду?
- Если у меня есть таблица с двумя или тремя строками ниже, возможно ли выполнить сортировку в одно и то же время или я должен сделать два разных макроса для этого?
Благодарю вас за помощь. Опять же, я знаю, что это может повторяться, но никто, который был опубликован, действительно помог мне.
Существует очень хороший почти канон на сообщения, на который ссылаются все время: http://stackoverflow.com/questions/10714251/how-to-avoid -using-select-in-excel-vba-macro –
Вы также можете найти лучший способ найти [Last Used Cell] (http://stackoverflow.com/questions/11169445/error-in-finding- last-used-cell-in-vba «Ответ Canon»). –
Чтобы найти последнюю ячейку: http://stackoverflow.com/questions/11169445/error-in-finding-last-used-cell-in-vba –