A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.
Save Up to 85% LIMITED TIME OFFER
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates
Excel Pack
50+ Excel PM Templates
PowerPoint Pack
50+ Excel PM Templates
MS Word Pack
25+ Word PM Templates
Ultimate Project Management Template
Ultimate Resource Management Template
Project Portfolio Management Templates
- VBA to Delete Range in Excel – Syntax
- VBA to Delete Range in Excel – Example:Shift:=xlToLeft
- VBA to Delete Range in Excel – Example:Shift:=xlToUp
- VBA to Delete Range in Excel – Example: EntireRow
- VBA to Delete Range in Excel – Example: EntireColumn
- VBA to Delete Range in Excel – Execution Instructions
Page load link
Go to Top
-
03-13-2006, 11:10 AM
#1
Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
Hello,
Could someone explain to me what is the meaning of the VBA expression:
Selection.Delete Shift:=xlToLeftIntuitively, I would suppose that it should delete the selection, but why
there is this «Shift» part coming after?The whole part of the code I try to analyze goes like this (and it looks
like a big garbage for me):(…)
Range(«A3»).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets(«Confirmations»).Select
Range(«BA22»).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
_
False, Transpose:=False
Columns(«BA:BD»).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns(«BC:BD»).Select
Selection.Delete Shift:=xlToLeft
Columns(«BD:BF»).Select
Selection.Delete Shift:=xlToLeft
Columns(«BE:BZ»).Select
Selection.Delete Shift:=xlToLeft
Range(«BA22:BD55»).Select
Selection.Copy
Range(«A22»).Select
ActiveSheet.Paste
(…)In particular, I can’t see what is the goal of selecting first BA:BD, then
BC:BD, then BD:BF and finally BE:BZ…
Is it me that don’t understand something or the code should be written
differently? (hint: it’s still functionning correctly and it is not deleting
the data pasted in BA22 (lines 4-8 of the code)).Many thanks for any explanations!
Mark
-
03-13-2006, 11:25 AM
#2
Re: Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
The line that selects the columns does just that. The line that deletes the
selection deletes the selected columns. The shift to the left part simply
shifts the remaining columns to the left. That code is not necessary since
the shift to the left is the default. Note that if you delete a column, the
column to the right will move left and occupy the space where the deleted
column was. The new column will also take the column letter of the deleted
column. Perhaps that is where you are confused. In other words, if the
sheet is blank and you delete a column or group of columns, you will not see
any change at all.
Exactly what is that you want this code to do? HTH Otto
«markx» <markx@discussions.microsoft.com> wrote in message
news:elRvA$qRGHA.5036@TK2MSFTNGP12.phx.gbl…
> Hello,
>
> Could someone explain to me what is the meaning of the VBA expression:
> Selection.Delete Shift:=xlToLeft
>
> Intuitively, I would suppose that it should delete the selection, but why
> there is this «Shift» part coming after?
>
> The whole part of the code I try to analyze goes like this (and it looks
> like a big garbage for me):
>
> (…)
> Range(«A3»).Select
> Range(Selection, Selection.End(xlToRight)).Select
> Range(Selection, Selection.End(xlDown)).Select
> Selection.Copy
> Sheets(«Confirmations»).Select
> Range(«BA22»).Select
> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
> _
> False, Transpose:=False
> Columns(«BA:BD»).Select
> Application.CutCopyMode = False
> Selection.Delete Shift:=xlToLeft
> Columns(«BC:BD»).Select
> Selection.Delete Shift:=xlToLeft
> Columns(«BD:BF»).Select
> Selection.Delete Shift:=xlToLeft
> Columns(«BE:BZ»).Select
> Selection.Delete Shift:=xlToLeft
> Range(«BA22:BD55»).Select
> Selection.Copy
> Range(«A22»).Select
> ActiveSheet.Paste
> (…)
>
> In particular, I can’t see what is the goal of selecting first BA:BD, then
> BC:BD, then BD:BF and finally BE:BZ…
> Is it me that don’t understand something or the code should be written
> differently? (hint: it’s still functionning correctly and it is not
> deleting the data pasted in BA22 (lines 4-8 of the code)).
>
> Many thanks for any explanations!
> Mark
>
>
>
>
-
03-13-2006, 11:30 AM
#3
RE: Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
If you delete a selection of cells normally, if offers you the chance to
shift the cells up or to the left or the entire row or column.The Shift:=xlLeft means it uses the Shift Cells Left option.
HTH.
«markx» wrote:
> Hello,
>
> Could someone explain to me what is the meaning of the VBA expression:
> Selection.Delete Shift:=xlToLeft
>
> Intuitively, I would suppose that it should delete the selection, but why
> there is this «Shift» part coming after?
>
> The whole part of the code I try to analyze goes like this (and it looks
> like a big garbage for me):
>
> (…)
> Range(«A3»).Select
> Range(Selection, Selection.End(xlToRight)).Select
> Range(Selection, Selection.End(xlDown)).Select
> Selection.Copy
> Sheets(«Confirmations»).Select
> Range(«BA22»).Select
> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
> _
> False, Transpose:=False
> Columns(«BA:BD»).Select
> Application.CutCopyMode = False
> Selection.Delete Shift:=xlToLeft
> Columns(«BC:BD»).Select
> Selection.Delete Shift:=xlToLeft
> Columns(«BD:BF»).Select
> Selection.Delete Shift:=xlToLeft
> Columns(«BE:BZ»).Select
> Selection.Delete Shift:=xlToLeft
> Range(«BA22:BD55»).Select
> Selection.Copy
> Range(«A22»).Select
> ActiveSheet.Paste
> (…)
>
> In particular, I can’t see what is the goal of selecting first BA:BD, then
> BC:BD, then BD:BF and finally BE:BZ…
> Is it me that don’t understand something or the code should be written
> differently? (hint: it’s still functionning correctly and it is not deleting
> the data pasted in BA22 (lines 4-8 of the code)).
>
> Many thanks for any explanations!
> Mark
>
>
>
>
>
-
03-13-2006, 12:45 PM
#4
Re: Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
Thanks to you both!
Now I understand much better this part of code…
Have a nice day!«DaveO» <DaveO@discussions.microsoft.com> wrote in message
news:2056E8D2-E01A-442A-A09D-0CC15E5ED0ED@microsoft.com…
> If you delete a selection of cells normally, if offers you the chance to
> shift the cells up or to the left or the entire row or column.
>
> The Shift:=xlLeft means it uses the Shift Cells Left option.
>
> HTH.
>
> «markx» wrote:
>
>> Hello,
>>
>> Could someone explain to me what is the meaning of the VBA expression:
>> Selection.Delete Shift:=xlToLeft
>>
>> Intuitively, I would suppose that it should delete the selection, but why
>> there is this «Shift» part coming after?
>>
>> The whole part of the code I try to analyze goes like this (and it looks
>> like a big garbage for me):
>>
>> (…)
>> Range(«A3»).Select
>> Range(Selection, Selection.End(xlToRight)).Select
>> Range(Selection, Selection.End(xlDown)).Select
>> Selection.Copy
>> Sheets(«Confirmations»).Select
>> Range(«BA22»).Select
>> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> SkipBlanks:=
>> _
>> False, Transpose:=False
>> Columns(«BA:BD»).Select
>> Application.CutCopyMode = False
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BC:BD»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BD:BF»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BE:BZ»).Select
>> Selection.Delete Shift:=xlToLeft
>> Range(«BA22:BD55»).Select
>> Selection.Copy
>> Range(«A22»).Select
>> ActiveSheet.Paste
>> (…)
>>
>> In particular, I can’t see what is the goal of selecting first BA:BD,
>> then
>> BC:BD, then BD:BF and finally BE:BZ…
>> Is it me that don’t understand something or the code should be written
>> differently? (hint: it’s still functionning correctly and it is not
>> deleting
>> the data pasted in BA22 (lines 4-8 of the code)).
>>
>> Many thanks for any explanations!
>> Mark
>>
>>
>>
>>
>>
-
03-13-2006, 12:50 PM
#5
Re: Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
Thanks to you both!
Now I understand much better this part of code…
Have a nice day!«DaveO» <DaveO@discussions.microsoft.com> wrote in message
news:2056E8D2-E01A-442A-A09D-0CC15E5ED0ED@microsoft.com…
> If you delete a selection of cells normally, if offers you the chance to
> shift the cells up or to the left or the entire row or column.
>
> The Shift:=xlLeft means it uses the Shift Cells Left option.
>
> HTH.
>
> «markx» wrote:
>
>> Hello,
>>
>> Could someone explain to me what is the meaning of the VBA expression:
>> Selection.Delete Shift:=xlToLeft
>>
>> Intuitively, I would suppose that it should delete the selection, but why
>> there is this «Shift» part coming after?
>>
>> The whole part of the code I try to analyze goes like this (and it looks
>> like a big garbage for me):
>>
>> (…)
>> Range(«A3»).Select
>> Range(Selection, Selection.End(xlToRight)).Select
>> Range(Selection, Selection.End(xlDown)).Select
>> Selection.Copy
>> Sheets(«Confirmations»).Select
>> Range(«BA22»).Select
>> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> SkipBlanks:=
>> _
>> False, Transpose:=False
>> Columns(«BA:BD»).Select
>> Application.CutCopyMode = False
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BC:BD»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BD:BF»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BE:BZ»).Select
>> Selection.Delete Shift:=xlToLeft
>> Range(«BA22:BD55»).Select
>> Selection.Copy
>> Range(«A22»).Select
>> ActiveSheet.Paste
>> (…)
>>
>> In particular, I can’t see what is the goal of selecting first BA:BD,
>> then
>> BC:BD, then BD:BF and finally BE:BZ…
>> Is it me that don’t understand something or the code should be written
>> differently? (hint: it’s still functionning correctly and it is not
>> deleting
>> the data pasted in BA22 (lines 4-8 of the code)).
>>
>> Many thanks for any explanations!
>> Mark
>>
>>
>>
>>
>>
-
03-13-2006, 12:55 PM
#6
Re: Selection.Delete Shift:=xlToLeft (what’s the meaning of this?)
Thanks to you both!
Now I understand much better this part of code…
Have a nice day!«DaveO» <DaveO@discussions.microsoft.com> wrote in message
news:2056E8D2-E01A-442A-A09D-0CC15E5ED0ED@microsoft.com…
> If you delete a selection of cells normally, if offers you the chance to
> shift the cells up or to the left or the entire row or column.
>
> The Shift:=xlLeft means it uses the Shift Cells Left option.
>
> HTH.
>
> «markx» wrote:
>
>> Hello,
>>
>> Could someone explain to me what is the meaning of the VBA expression:
>> Selection.Delete Shift:=xlToLeft
>>
>> Intuitively, I would suppose that it should delete the selection, but why
>> there is this «Shift» part coming after?
>>
>> The whole part of the code I try to analyze goes like this (and it looks
>> like a big garbage for me):
>>
>> (…)
>> Range(«A3»).Select
>> Range(Selection, Selection.End(xlToRight)).Select
>> Range(Selection, Selection.End(xlDown)).Select
>> Selection.Copy
>> Sheets(«Confirmations»).Select
>> Range(«BA22»).Select
>> Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
>> SkipBlanks:=
>> _
>> False, Transpose:=False
>> Columns(«BA:BD»).Select
>> Application.CutCopyMode = False
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BC:BD»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BD:BF»).Select
>> Selection.Delete Shift:=xlToLeft
>> Columns(«BE:BZ»).Select
>> Selection.Delete Shift:=xlToLeft
>> Range(«BA22:BD55»).Select
>> Selection.Copy
>> Range(«A22»).Select
>> ActiveSheet.Paste
>> (…)
>>
>> In particular, I can’t see what is the goal of selecting first BA:BD,
>> then
>> BC:BD, then BD:BF and finally BE:BZ…
>> Is it me that don’t understand something or the code should be written
>> differently? (hint: it’s still functionning correctly and it is not
>> deleting
>> the data pasted in BA22 (lines 4-8 of the code)).
>>
>> Many thanks for any explanations!
>> Mark
>>
>>
>>
>>
>>
Simply put, columns B,C,D,E,F,.....,Z,AA,AB,AC,.....,IS,IT,IU,IV
all of those will be deleted and they will be replaced with empty columns pulled from the left side of the sheet, meaning that if you have some data on column A that column will not be affected.
Improve this answer
answered Jun 22, 2011 at 20:33
AhmadAhmad
12.2k6 gold badges50 silver badges87 bronze badges
616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
|
1 |
|
Удаление столбцов и изменение их ширины15.01.2014, 10:18. Показов 8640. Ответов 16
Здравствуйте, имеется таблица, помогите с написанием макроса по редактированию этой таблицы для Excel 2010. Макрос должен: Удалить: Изменить ширину столбцов: Удалить данные столбца D с ячейки D3 и до конца Изменить в строке 1 высоту шрифта до 11 и выравнивание текста по середине Нарисовать все границы таблица с A до J со строки 1 и до конца данных Вот такая вот задумка, но что то у меня ничего не выходит, может кто поможет, заранее спасибо! образец до.xlsx образец после.xlsx
0 |
RAVproFFI 33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
||||||||
15.01.2014, 10:48 |
2 |
|||||||
запусти запись макроса. Больше половины из того что тебе надо запишется. Единственное нужно будет поправить «с ячейки D3 и до конца»
и «со строки 1 и до конца»
1 |
strike383 616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
||||
15.01.2014, 11:06 [ТС] |
3 |
|||
пишет ошибку тут Selection.Delete Shift:=xlToLeft
0 |
Ушел с CyberForum совсем! 873 / 182 / 25 Регистрация: 04.05.2011 Сообщений: 1,020 Записей в блоге: 110 |
|
15.01.2014, 11:17 |
4 |
строки сверху вниз удаляешь ? учти что после удаления строки 1, строка 4 станет строкой 3 и т.д…
0 |
RAVproFFI 33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
||||||||
15.01.2014, 11:24 |
5 |
|||||||
strike383, удали от .Select до ближайшего Selection
на
и т.д.
0 |
Surrogate Ушел с CyberForum совсем! 873 / 182 / 25 Регистрация: 04.05.2011 Сообщений: 1,020 Записей в блоге: 110 |
||||||||
15.01.2014, 11:28 |
6 |
|||||||
Range(«A:A,D,I:I,J:J»).Select зачем здесь Range(«J1»).Activate ?
и так
1 |
strike383 616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
||||||||||||
15.01.2014, 12:06 [ТС] |
7 |
|||||||||||
исправил:
Работает, вот только ширина столбцов везде 18 почему то
запусти запись макроса. Больше половины из того что тебе надо запишется. Единственное нужно будет поправить «с ячейки D3 и до конца»
и «со строки 1 и до конца»
можно с примером в моем коде, где что изменить Добавлено через 1 минуту
0 |
Surrogate Ушел с CyberForum совсем! 873 / 182 / 25 Регистрация: 04.05.2011 Сообщений: 1,020 Записей в блоге: 110 |
||||||||||||||||
15.01.2014, 12:33 |
8 |
|||||||||||||||
1.
а также удали все ActiveWindow.ScrollColumn…. 2. все изменения ширины столбцов
можно записать сокращенно
далее по аналогии Добавлено через 5 минут
можно ограничиться лишь изменением размера шрифта
Добавлено через 8 минут
а также удали все ActiveWindow.ScrollColumn…. и ненужное форматирование текста и границ если форматирование границ все же нужно, то для сокращения объема кода можно использовать фичу из этого поста
1 |
strike383 616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
||||||||
15.01.2014, 14:24 [ТС] |
9 |
|||||||
Помогите отредактировать еще эту часть кода, нужно удалить данные со столбца D, начиная с ячейки D3 и до конца таблицы, длина таблицы может быть любой, но согласно этому коду данные будут удаляться до ячейки D344. Конечно можно написать чтоб данные удалялись, скажем до D10000, но это же не правильно, как прописать чтоб до конца таблицы удалялось?
Помогите еще с границами таблицы. Ее длина может меняться. А согласно коду ниже, ее границы прописаны конкретно от A1 до F344. Нужно чтоб границы были от A1 до F , но не 344, а до конца строк с данными
Добавлено через 1 минуту
0 |
RAVproFFI 33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
||||||||||||
15.01.2014, 14:55 |
10 |
|||||||||||
strike383, Range(«D3: D344») замени как я писал
cells(3,4) это D4, а cells(R,4) это D(последняя ячейка)
Добавлено через 15 минут
чет сразу не подумал
2 |
616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
|
15.01.2014, 14:58 [ТС] |
11 |
RAVproFFI, спасибо, попробую, но завтра, сегодня не получится, отпишусь о результатах Еще такой вопрос, как в макросе прописать, чтоб то что получилось в конце, отправилось на печать, далее сама таблиса сохранилась, ну скажем на диске C:/Test, а место имени дата,месяц,год сохранения, и без макрос. После чего файл закрывается. Это вообще можно сделать?
0 |
33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
|
15.01.2014, 15:06 |
12 |
могу написать, но будет полезней если сам попробуешь>
0 |
616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
|
15.01.2014, 15:08 [ТС] |
13 |
Ок, попробую, завтра отпишусь ))
0 |
33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
|
15.01.2014, 15:13 |
14 |
да и еще будет полезно: чтоб экран не моргал когда код делает свою работу — в самом начале кода вставь Application.ScreenUpdating = False, а в конце Application.ScreenUpdating = True
0 |
strike383 616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
||||||||||||
16.01.2014, 18:23 [ТС] |
15 |
|||||||||||
Ок, так и сделаю, спасибо Добавлено через 11 часов 48 минут
Вообщем на печать без проблем отправляет, с сохранением небольшие загвоздки. Добавлено через 2 минуты
Добавлено через 15 часов 12 минут
По второму вопросу вот что получилось:
Вообщем на печать без проблем отправляет, с сохранением небольшие загвоздки. Может кто помочь с этим кодом?
0 |
strike383 616 / 0 / 1 Регистрация: 24.07.2013 Сообщений: 93 |
||||
17.01.2014, 19:05 [ТС] |
16 |
|||
Все, сам сделал сохранение, кому интересно:
0 |
RAVproFFI 33 / 33 / 1 Регистрация: 15.10.2013 Сообщений: 130 |
||||
17.01.2014, 22:29 |
17 |
|||
strike383, малорик
Range(«A1:F1»).Select на:
и Range(«A1:F1»).Select в конце убери
0 |
Содержание
- Метод Delete (Excel Graph)
- Все объекты, кроме объекта Range
- Синтаксис
- Объект Range
- Синтаксис
- Параметры
- Замечания
- Пример
- Поддержка и обратная связь
- Range.Delete method (Word)
- Syntax
- Parameters
- Return value
- Remarks
- Example
- See also
- Support and feedback
- Объект Range (Excel)
- Примечания
- Пример
- Методы
- Свойства
- См. также
- Поддержка и обратная связь
- VBA Delete Range Shift in Excel Explained with Examples
- VBA Reference
- 120+ Project Management Templates
- VBA to Delete Range in Excel – Syntax
- VBA to Delete Range in Excel – Example:Shift:=xlToLeft
- VBA to Delete Range in Excel – Example:Shift:=xlToUp
- VBA to Delete Range in Excel – Example: EntireRow
- VBA to Delete Range in Excel – Example: EntireColumn
- VBA to Delete Range in Excel – Execution Instructions
Метод Delete (Excel Graph)
Метод Delete , как он применяется ко всем объектам в списке Применяется к , кроме объекта Range , а затем к объекту Range .
Все объекты, кроме объекта Range
Применяется ко всем объектам в списке Применяется к , кроме объекта Range .
Удаляет указанный объект.
Синтаксис
expression. Удалить
выражение (обязательно). Выражение, возвращающее один из указанных выше объектов.
Объект Range
Применяется к объекту Range .
Удаляет указанный объект.
Синтаксис
expression. Delete (SHIFT)
выражение (обязательно). Выражение, возвращающее объект Range .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Shift | _Дополнительные | XlDeleteShiftDirection | Используется только с объектами Range . Указывает способ сдвига ячеек для замены удаленных ячеек. |
Может быть одной из следующих констант XlDeleteShiftDirection : xlShiftToLeft или xlShiftUp.
Если этот аргумент опущен, Граф решает, как сдвигать ячейки на основе формы указанного диапазона.
Замечания
При удалении объекта Point или LegendKey удаляется весь ряд.
Пример
В этом примере удаляются ячейки A1:D10 в таблице и сдвигаются остальные ячейки влево.
В этом примере заголовок диаграммы удаляется.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
Range.Delete method (Word)
Deletes the specified number of characters or words.
Syntax
expression.Delete([Unit], [Count])
expression Required. A variable that represents a Range object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
Unit | Optional | Variant | The unit by which the collapsed range is to be deleted. Can be one of the WdUnits constants. |
Count | Optional | Variant | The number of units to be deleted. To delete units after the range, collapse the range and use a positive number. To delete units before the range, collapse the range and use a negative number. |
Return value
This method returns a Long value that indicates the number of items deleted, or it returns 0 (zero) if the deletion was unsuccessful.
Example
This example selects and deletes the contents of the active document.
See also
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.
Источник
Объект Range (Excel)
Представляет ячейку, строку, столбец или группу ячеек, содержащую один или несколько смежных блоков ячеек или объемный диапазон.
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Примечания
Элемент по умолчанию объекта Range направляет вызовы без параметров в свойство Value, а вызовы с параметрами — в элемент Item. Таким образом, someRange = someOtherRange соответствует someRange.Value = someOtherRange.Value , someRange(1) соответствует someRange.Item(1) и someRange(1,1) соответствует someRange.Item(1,1) .
В разделе Пример описаны следующие свойства и методы для возврата объекта Range:
- Свойства Range и Cells объекта Worksheet
- Свойства Range и Cells объекта Range
- Свойства Rows и Columns объекта Worksheet
- Свойства Rows и Columns объекта Range
- Свойство Offset объекта Range
- Метод Union объекта Application
Пример
Чтобы вернуть объект Range, представляющий одну ячейку или диапазон ячеек, используйте синтаксис Range ( arg ), где arg обозначает диапазон. В следующем примере значение ячейки A1 помещается в ячейку A5.
В следующем примере диапазон A1:H8 заполняется случайными числами путем задания формулы для каждой ячейки в диапазоне. При использовании без квалификатора объекта (объекта слева от точки) свойство Range возвращает диапазон на активном листе. Если активное окно не является листом, метод завершается с ошибкой.
Используйте метод Activate объекта Worksheet, чтобы активировать лист перед использованием свойства Range без явного квалификатора объекта.
В следующем примере очищается содержимое диапазона Criteria.
Если используется текстовый аргумент для адреса диапазона, необходимо указать адрес в нотации стиля A1 (нельзя использовать нотацию в стиле R1C1).
Чтобы получить диапазон, содержащий все отдельные ячейки листа, используйте свойство Cells на листе. Вы можете обращаться к отдельным ячейкам, используя синтаксис Item(строка, столбец), где строка — индекс строки, а столбец — индекс столбца. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range. В следующем примере на первом листе активной книги ячейке A1 присваивается значение 24, а в ячейке B1 — значение 42.
В следующем примере задается формула для ячейки A2.
Хотя также можно использовать Range(«A1») , чтобы вернуть значение ячейки A1, иногда свойство Cells может быть удобнее, так как позволяет использовать переменную для строки или столбца. В следующем примере создаются заголовки столбцов и строк на листе Sheet1. Обратите внимание, что после активации листа можно использовать свойство Cells без явного объявления листа (оно возвращает ячейку на активном листе).
Хотя для изменения ссылок в стиле A1 можно использовать строковые функции Visual Basic, проще (и лучше при программировании) использовать нотацию Cells(1, 1) .
Используйте синтаксис_выражение_.Cells, где выражение возвращает объект Range, чтобы получить диапазон с тем же адресом, состоящий из отдельных ячеек. В таком диапазоне отдельные ячейки доступны с помощью синтаксиса Item(строка, столбец) относительно левого верхнего угла первой области диапазона. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range. В следующем примере на первом листе активной книги в ячейках C5 и D5 указывается формула.
Чтобы вернуть объект Range, используйте синтаксис Range ( ячейка1, ячейка2 ), где ячейка1 и ячейка2 — это объекты Range, указывающие начальную и конечную ячейки. В следующем примере устанавливается тип линии границы для ячеек A1:J10.
Имейте в виду, что точка перед каждым появлением свойства Cells является обязательной, если результат предыдущего оператора With нужно применять к свойству Cells. В данном случае указано, что ячейки расположены на листе один (без точки свойство Cells будет возвращать ячейки активного листа).
Чтобы получить диапазон, содержащий все строки листа, используйте свойство Rows на листе. Вы можете обращаться к отдельным строкам с помощью синтаксиса Item(строка), где строка — это индекс строки. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range.
Недопустимо указывать второй параметр свойства Item для диапазонов, состоящих из строк. Сначала нужно преобразовать их в отдельные ячейки, используя свойство Cells.
В следующем примере удаляются строки 5 и 10 первого листа активной книги.
Чтобы получить диапазон, содержащий все столбцы листа, используйте свойство Columns на листе. Вы можете обращаться к отдельным столбцам с помощью синтаксиса Item(строка) [sic], где строка — это индекс столбца в виде числа или адреса столбца в формате А1. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range.
Недопустимо указывать второй параметр свойства Item для диапазонов, состоящих из столбцов. Сначала нужно преобразовать их в отдельные ячейки, используя свойство Cells.
В следующем примере удаляются столбцы B, C, E и J первого листа активной книги.
Используйте синтаксис_выражение_.Rows, где выражение возвращает объект Range, чтобы получить диапазон, состоящий из строк первой области диапазона. Вы можете обращаться к отдельным строкам с помощью синтаксиса Item(строка), где строка — это относительный индекс строки от верхнего края первой области диапазона. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range.
Недопустимо указывать второй параметр свойства Item для диапазонов, состоящих из строк. Сначала нужно преобразовать их в отдельные ячейки, используя свойство Cells.
В следующем примере удаляются диапазоны C8:D8 и C6:D6 первого листа активной книги.
Используйте синтаксис_выражение_.Columns, где выражение возвращает объект Range, чтобы получить диапазон, состоящий из столбцов первой области диапазона. Вы можете обращаться к отдельным столбцам с помощью синтаксиса Item(строка) [sic], где строка — это относительный индекс столбца от левого края первой области диапазона, указанный в виде числа или адреса столбца в формате A1. Свойство Item можно пропустить, так как вызов направляется к нему с помощью элемента по умолчанию объекта Range.
Недопустимо указывать второй параметр свойства Item для диапазонов, состоящих из столбцов. Сначала нужно преобразовать их в отдельные ячейки, используя свойство Cells.
В следующем примере удаляются диапазоны L2:L10, G2:G10, F2:F10 и D2:D10 первого листа активной книги.
Чтобы вернуть диапазон с указанным смещением относительно другого диапазона, используйте синтаксис Offset ( строка, столбец ), где строка и столбец — это смещения строк и столбцов. В следующем примере выделяются ячейки, расположенные на три строки вниз и на один столбец вправо от ячейки в левом верхнем углу текущего выделенного фрагмента. Нельзя выбрать ячейку, которая находится не на активном листе, поэтому сначала необходимо активировать лист.
Используйте синтаксис Union ( диапазон1, диапазон2, . ) для возврата диапазонов из нескольких областей, то есть диапазонов, состоящих из двух или более смежных блоков ячеек. В следующем примере создается объект, определенный как объединение диапазонов A1:B2 и C3:D4, а затем выбирается определенный диапазон.
При работе с выделенными фрагментами, содержащими несколько областей, удобно применять свойство Areas. Оно разделяет выделенный фрагмент с несколькими областями на отдельные объекты Range, а затем возвращает объекты в виде коллекции. Используйте свойство Count в возвращенной коллекции, чтобы убедиться, что выделение содержит более одной области, как показано в следующем примере.
В этом примере используется метод AdvancedFilter объекта Range для создания списка уникальных значений, а также количества появлений этих уникальных значений в диапазоне столбца A.
Методы
Свойства
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Источник
VBA Delete Range Shift in Excel Explained with Examples
VBA Reference
Effortlessly
Manage Your Projects
120+ Project Management Templates
Seamlessly manage your projects with our powerful & multi-purpose templates for project management.
120+ PM Templates Includes:
50+ Excel Templates
50+ PowerPoint Templates
25+ Word Templates
A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.
Save Up to 85% LIMITED TIME OFFER
All-in-One Pack
120+ Project Management Templates
Essential Pack
50+ Project Management Templates
Excel Pack
50+ Excel PM Templates
PowerPoint Pack
50+ Excel PM Templates
MS Word Pack
25+ Word PM Templates
Ultimate Project Management Template
Ultimate Resource Management Template
Project Portfolio Management Templates
We can use VBA Delete Range to Shift Up and Shift Left the cells. Range.Delete method will Delete the selected cells or range as per the shift options. You can also delete entire rows or columns using EntireRow.Delete and EntireColumn.Delete methods of range object.
VBA to Delete Range in Excel – Syntax
Here is the syntax to Delete a range using VBA. Here, Shift will be xlToLeft or xlUp. Shift:=xlLeft will shifts the cells towards Left side after deletion of the range. And Shift:=xlUp will shifts the cells towards Upper side after deletion of the range.
The below syntax will delete the entire row of the selected range:
And the below syntax will delete the entire column of the selected range:
VBA to Delete Range in Excel – Example:Shift:=xlToLeft
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the range and shifting the cells left side. Here we are deleting range “B2:D10”.
VBA to Delete Range in Excel – Example:Shift:=xlToUp
Here is the Excel VBA macro to Delete a range. In this example , we are deleting the range and shifting the cells towards up. Here we are deleting range “B2:D10”.
VBA to Delete Range in Excel – Example: EntireRow
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the entire row(s). Here we are deleting the rows of the range “B2:D10”, ie. we are deleting rows 2 to 10.
VBA to Delete Range in Excel – Example: EntireColumn
Here is the simple example to Delete a range in excel using VBA. In this example , we are deleting the entire column(s). Here we are deleting the columns of the range “B2:D10”, ie. we are deleting columns ‘B’ to ‘D’.
VBA to Delete Range in Excel – Execution Instructions
You can follow the below steps to execute the macro to Delete and paste a range using VBA.
Источник
Просмотров: 58
Работа с ячейками и диапазонами в VBA
VBA в Excel используется, как и следует из названия, для автоматизации обработки информации в файлах программы. Но без умения взаимодействия с объектами с помощью VBA автоматическая обработка данных невозможна. Работа с объектами рабочего листа в Excel VBA заключается в обращении к таким объектам и изменении их свойств. Поэтому важное значение обретает умение правильно обращаться с помощью VBA к объектам Excel, так как вся информация находится именно в них. В противном случае все встроенные операторы и функции, все процедуры, используемые VBA, станут не более чем красивой абстракцией.
На нашем занятии мы познакомимся с основными объектами рабочего листа, используемыми в VBA. К таким объектам относятся ячейки и диапазоны ячеек.
Самым маленьким в иерархии объектов является ячейка. Работа с ячейкой начинается с обращения к ней в коде макроса. Обратиться к ячейке можно двумя способами. Если речь идет о ячейке, выбранной в данный момент, то ее указывают как ActiveCell. Активной ячейка становится после щелчка по ней мышью или перемещения, а нее курсором в программе Excel. В VBA для выбора и активации ячейки используют метод Select. Если речь идет о конкретной ячейке, то ее указывают комбинацией Cells(R,C). Здесь R и C представляют соответственно номер строки и номер столбца листа, на пересечении которых располагается указанная ячейка. Данный вариант является практически полным аналогом абсолютной адресации стиля R1C1. Чтобы получить значение ячейки, или ввести значение в ячейку используется метод value. Для примера рассмотрим следующий код
Sub Test_Cell()
Cells(2,4).Select
Cells(1,2).Value=5
ActiveCell.Value=10
End Sub
Что произойдет после запуска данного макроса? Прежде всего стоить заметить, что, так как лист не указан, все операции будут выполнены на открытом листе. Прежде всего программа выберет ячейку D2, так как колонка D является 4 по счету. Затем в ячейку B2 запишется значение 5, а в текущую ячейку D2 – значение 10. Несмотря на свою простоту, код наглядно демонстрирует, что для внесения данных в VBA выделять ячейки не обязательно, достаточно их указать в коде. Это очень важно, так как в итоге можно, находясь на одном листе книги, выбирать данные на остальных листах, не перемещаясь между ними. Такой подход позволяет сократить код программы макроса и ускорить работу. Кроме этого, можно указать ячейки по их расположению относительно указанной ячейки. Для этого используют метод Offset. Перемещение вниз по строкам и вправо по столбцам указывают положительными числами. Перемещение по строкам вверх и по столбцам влево будет отрицательным.
Пример кода
Sub Test_Cell2
Cells(4,3).Select
ActiveCell.Value=1
ActiveCEll.Offset(1,1)=2
ActiveCEll.Offset(2,2)=3
End Sub
Результатом работы макроса будет выбор ячейки С3. Значение данной ячейки станет равным единице. Затем последовательно программа переместится относительно активной ячейки на одну строку вниз и одну колонку влево, а потом на две строки вниз и две колонки влево. Фактически будут выбраны (но не активированы!) ячейки D5 и Е6, куда и запишутся соответственно значения 2 и 3.
Кроме рассмотренных выше методов, объект Cells поддерживает множество других методов и свойств. Перечислим несколько из них. Для упрощения будем считать, что все эти методы применены к активной ячейке
1. WrapText. Включает или выключает перенос текста в ячейке.
ActiveCell.WrapText=true
2. EntireRow, EntireColumn – соответственно показывают номер строки и номер колонки выбранной ячейки. Эти свойства изменить нельзя, но допустимо использовать для работы. Рассмотрим вариант, в котором необходимо скрыть ячейку. Саму ячейку отдельно скрыть нельзя, поэтому мы скроем целиком строку с выбранной ячейкой
ActiveCell.EntireRow.Hidden=true
3. AutoFit – автоматически настраивает ширину и высоту ячейки по ее содержимому.
ActiveCell.AutoFit
4. Font –указываются настройка шрифта. Задается стиль (bold, Italic, UnderLIne), размер (Size) и другие параметры. К примеру, сделаем шрифт активной ячейки полужирным и зададим размер (кегль) равным 12
ActiveCell.Font.Bold=true
ActiveCell.Font.Size=12
5. Formula – задает в ячейке формулу для вычислений. Более подробно о вычислениях в VBA вы можете узнать на наших занятиях.
a = ActiveCell.Offset(-2, 0).Value
b = ActiveCell.Offset(-1, 0).Value
ActiveCell.Formula = “=” & a & “+” & b
Макрос суммирует значение двух ячеек, находящихся непосредственно над активной. Обратите внимание, что формула записывается как текстовая строка, начинающаяся со знака «=», а части этой строки разделены знаком амперсанда «&» с обязательным пробелом как перед ним, так и после него.
6. Interior – указывает оформление. Часто применяют, чтобы указать цвет заливки. Для указания цвета используют свойство ColorIndex либо Color. В первом случае указывают номер цвета их имеющихся 56 вариантов, во втором задают цвет с помощью комбинирования соотношения красного, зеленого и синего цветов палитрой RGB. Первая цифра в скобках отвечает за уровень красного цвета, вторая соответствует уровню зеленого, третья – синему. Максимальное значение уровня цвета равно 255.
ActiveCell.Interior.ColorIndex = 6
ActiveCell.Offset(1, 0).Interior.Color = RGB(255, 255, 0)
Оба указанных выше варианта зададут желтый цвет заливки.
7. Сору – Копирует содержимое ячейки. Можно сразу указать место назначения скопированных данных. Если это не сделать, выполнится копирование в буфер обмена.
8. Cut – вырезает содержимое ячейки.
Конечно, есть и другие свойства, и методы ячеек, здесь перечислены только наиболее часто применяемые из них.
Перейдем к использованию диапазонов в VBA. Работу с ними ведут с помощью объекта Rangе, указав в скобках нужный адрес. Например, команда
Range(“A2:D6”).value=10
Запишет значение 10 в каждую ячейку диапазона A2:D6. Обратите внимание, что адрес выбранного диапазона находится в кавычках. В качестве диапазона можно указать и одну ячейку, поэтому операторы ниже равносильны и активируют одну и ту же ячейку.
Cells(1,2).Select
Range(“B1”).Select
Кроме этого, диапазон задают, указав адрес его крайних угловых ячеек по диагонали и отделив их запятой. Обычно задают крайние верхнюю левую и нижнюю правую ячейку нужного диапазона. Таким образом, диапазон “A2:D6” можно указать так:
Range(Cells(2,1),Cells(6,4))
Несмежные диапазоны указывают двумя способами. Во-первых, отделяют адреса в объекте Range запятой
Range(“A1,B10”).Value = 180
Кроме этого, для указания несмежного диапазона используют метод Union
Union(Range(“A1”), Range(“B10”)).Value = 180
Оба варианта запишут значение 180 в диапазоны A1 и B10 одновременно, пропустив все ячейки между ними. Метод Union удобнее, если нужно применить цикл. О работе с циклами мы поговорим на следующих занятиях.
Объект Range поддерживает все методы и свойства, доступные для объектов Cells. Кроме этого, у данного объекта есть и другие свойства, и методы, которые либо нельзя использовать для объектов Cells, либо такое использование является бессмысленным.
1. Row – номер строки первой ячейки выбранного диапазона.
2. Column – номер столбца первой ячейки выбранного диапазона
3. Rows.Count и Columns.Count – количество строк и столбцов соответственно указанном диапазоне.
4. Sort – сортировка диапазона
5. AutoFilter – – аналог команды Excel «Данные» → «Фильтр» → «Автофильтр». Настройка фильтрации задается указанными для данного метода параметрами.
6. Clear, ClearComments, ClearContents, ClearFormats – выполняют очистку всего диапазона, комментариев, содержимого и формата диапазона соответственно.
7. Delete – удаляет диапазон. Необходимо указать смещение ячеек после удаления диапазона с помощью свойства Shift. Смещение влево задается как Shift=XlToLeft, для смещения вверх применяют вариант Shift:=XlUp
Стоит отметить тонкость обращения к активному диапазону в среде VBA. При работе с диапазонами для указания активного диапазона команды ActiveRange не существует. Аналогом объекта ActiveCell, указывающего на активную ячейку, для диапазонов является объект Selection. Он содержит все выделенные ячейки на листе. Доступ к данному объекту и работа с ним выполняется теми же методами и свойствами, что и при работе с объектом Range. Объект Selection позволяет более гибко обработать нужный диапазон, так как отсутствует привязка к конкретному адресу. Это очень удобно, так как расположение фактических данных обычно не совпадает с адресом указанного в макросе диапазона.
Кроме объекта Selection, содержащего выделенный диапазон, существую еще два варианта для выбора диапазона на рабочем листе. Это объекты CurrentRegion и UsedRange.
Объект CurrentRegion представляет собой диапазон, содержащий активную ячейку и ограниченный пустыми строками и столбцами, любо границами листа. Строки и столбцы, ограничивающие объект CurrentRegion не должны содержать не только данных и формул, но и форматирования.
Объект UsedRange содержит диапазон, в котором происходит работа пользователя. Этот диапазон содержит все ячейки листа, в которых обрабатывалось содержимое, в том числе форматы. При удалении ячеек с данными на листе они продолжают использоваться в Used Range. Чтобы их убрать, необходимо перейти в заполненную ячейку и сохранить файл. Кроме этого можно применить такой код
With ActiveSheet.UsedRange: End With
Обратите внимание, что для использования объекта CurrentRegion надо указать ячейку, относительно которой вычисляется адрес данного объекта. При использовании UsedRange требуется указать лист, на котором идет работа. Аналогично обращению к текущей ячейке текущий лист задают как ActiveSheet. Более подробно работу с листами рассмотрим в следующих занятиях.
Текущий же наш урок подошел к концу. Желаем всем хорошего дня и удачи в работе.
Manipulating ranges and cells is one of the most common actions in VBA. You can use the following to either learn from or just to copy and paste into your own code.
Referencing ranges & cells from the worksheet
'Reference range by address Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Range("A1:D4").[Other properties and actions] 'Reference cells by row and column - Cells(Row,Column) Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Cells(1, 1).[Other properties and actions] 'Reference ranges by a defined name Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Range("RangeName").[Other properties and actions]
Assigning a range to a variable
'Assigning a range to a variable Dim Rng As Range Set Rng = Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Range("A1:D4") 'Assigning a cell to a variable Dim Rng As Range Set Rng = Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Cells(1, 1)
Selecting ranges and cells
'Select range by address Range("A1:D4").Select 'Select cells by row and column - Cells(Row,Column) Cells(1, 1).Select 'Select ranges by a defined name Range("RangeName").Select
Changing the value of a range or cell
'Change value of a range by address Range("A1:D4").Value = "Text here" 'Change value cells by row and column - Cells(Row,Column) Cells(1, 1).Value = 30
Setting the value of a variable based on the value of a cell
'Setting a variable based on a cell value Dim CellValue As Integer CellValue = Cells(1, 1).Value
Counting cells, rows and columns
'Count cells in a range Dim CellsInRange As Long CellsInRange = Range("A1:D4").Cells.Count 'Count rows in a range Dim RowsInRange As Long RowsInRange = Range("A1:D4").Rows.Count 'Count columns in a range Dim ColumnsInRange As Long ColumnsInRange = Range("A1:D4").Columns.Count
Looping through cells, rows and columns in a range
'Loop through action for each cell in a range Dim Rng As Range Dim CellsInRng As Range Set Rng = Range("A1:D4") For Each CellsInRange In Rng 'Carry out an action Next CellsInRange 'Loop through action for each row in a range Dim Rng As Range Dim CellsInRng As Range Set Rng = Range("A1:D4") For Each CellsInRange In Rng.Rows 'Carry out an action Next CellsInRange 'Loop through action for each column in a range Dim Rng As Range Dim CellsInRng As Range Set Rng = Range("A1:D4") For Each CellsInRange In Rng.Columns 'Carry out an action Next CellsInRange
Inserting rows, columns, ranges and cells
'Inserting Columns Columns("B:B").Insert 'Inserting Rows Rows("2:3").Insert 'Inserting a range of cells (shift cells to the right) Range("A1:D4").Insert Shift:=xlToRight 'Inserting a range of cells (shift cells to down) Range("A1:D4").Insert Shift:=xlDown
Deleting rows, columns, ranges and cells
'Deleting columns Columns("B:B").Delete 'Deleting rows Rows("3:4").Delete 'Delete a range of cells (shift cells to the right) Range("A1:D4").Delete Shift:=xlToLeft 'Delete a range of cells (shift cells to the down) Range("A1:D4").Delete Shift:=xlU
Copy and pasting
'Copy and paste everyting Range("A1:D4").Copy Range("H7").Paste 'Copy and paste values only Range("A1:D4").Copy Range("H7").PasteSpecial Paste:=xlPasteValues 'Copy and paste formats only Range("A1:D4").Copy Range("H7").PasteSpecial Paste:=xlPasteFormats
Copying and paste without using the clipboard
'Copy everyting Range("A1:D4").Copy Destination:=Range("H7") 'Copy values only Range("H7:K10").Value = Range("A1:D4").Value
Finding the last cell in a row or column
'Last used cell in one row Dim LastRow As Long LastRow = Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Cells(Rows.Count, "A").End(xlUp).Row 'Last used cell in one column Dim LastCol As Integer LastCol = Workbooks("WorkbookName.xlsx").Worksheets("SheetName").Cells(1, Columns.Count).End(xlToLeft).Column
Finding the first cell in a range
'Find the row of first cell of a range Dim FirstRow As Long Dim Rng As Range Set Rng = Range("A1:D4") FirstRow = Rng.Row 'Find the column of first cell of a range Dim FirstColumn As Long Dim Rng As Range Set Rng = Range("A1:D4") FirstColumn = Rng.Column
Finding the row and column of the active cell
'Find the row of the active cell ActiveCell.Row 'Find the columns of the active cell ActiveCell.Column 'Find the address of the active cells ActiveCell.Address
About the author
Hey, I’m Mark, and I run Excel Off The Grid.
My parents tell me that at the age of 7 I declared I was going to become a qualified accountant. I was either psychic or had no imagination, as that is exactly what happened. However, it wasn’t until I was 35 that my journey really began.
In 2015, I started a new job, for which I was regularly working after 10pm. As a result, I rarely saw my children during the week. So, I started searching for the secrets to automating Excel. I discovered that by building a small number of simple tools, I could combine them together in different ways to automate nearly all my regular tasks. This meant I could work less hours (and I got pay raises!). Today, I teach these techniques to other professionals in our training program so they too can spend less time at work (and more time with their children and doing the things they love).
Do you need help adapting this post to your needs?
I’m guessing the examples in this post don’t exactly match your situation. We all use Excel differently, so it’s impossible to write a post that will meet everybody’s needs. By taking the time to understand the techniques and principles in this post (and elsewhere on this site), you should be able to adapt it to your needs.
But, if you’re still struggling you should:
- Read other blogs, or watch YouTube videos on the same topic. You will benefit much more by discovering your own solutions.
- Ask the ‘Excel Ninja’ in your office. It’s amazing what things other people know.
- Ask a question in a forum like Mr Excel, or the Microsoft Answers Community. Remember, the people on these forums are generally giving their time for free. So take care to craft your question, make sure it’s clear and concise. List all the things you’ve tried, and provide screenshots, code segments and example workbooks.
- Use Excel Rescue, who are my consultancy partner. They help by providing solutions to smaller Excel problems.
What next?
Don’t go yet, there is plenty more to learn on Excel Off The Grid. Check out the latest posts:
Выделение/удаление столбца |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
- Home
- FREE DOWNLOADS
- VBA Tutorials
- VBA CodeSamples
- VBA for Beginners
- Save Time News
- Outlook Tutorials
- Save Time Blog
- Excel VBA Code
- About This Website
- Tell Your Story
To delete column in Excel VBA you
can first run this Sub to enter data into a spreadsheet if you are
starting with a blank workbook.
Sub Mulptiplication_Table()
Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1:B1").Select
Selection.AutoFill Destination:=Range("A1:J1"), Type:=xlFillDefault
Range("A1:J1").Select
Range("A2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A10"), Type:=xlFillDefault
Range("A1:A10").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "=R[-1]C*RC[-1]"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:C2"), Type:=xlFillDefault
Range("B2:C2").Select
Range("B2").Select
ActiveCell.FormulaR1C1 = "=R1C*RC1"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:J2"), Type:=xlFillDefault
Range("B2:J2").Select
Selection.AutoFill Destination:=Range("B2:J10"), Type:=xlFillDefault
Range("B2:J10").Select
End Sub
In
the following Sub, you can use either Columns(«F:F») or Columns(3)
depending on the column you want to delete. The Columns property takes
a Range or a numerical value.
Sub Delete_Column_Excel_VBA()
Columns("F:F").Select
Selection.Delete Shift:=xlToLeft
End Sub
The
Rows property also takes a Range or a numerical value.
Sub Delete_Row_Excel_VBA()
Rows("7:7").Select
Selection.Delete Shift:=xlUp
End Sub
In
both the above examples of Selection.Delete, you do not need the
«Shift:=» xlToLeft or xlUp since you are deleting a whole Row or
Column. If you were deleting a Range of cells that are not a whole Row
or Column you would want to specify from which direction you want the
cells to move from with xlToLeft, xlToRight, xlUp, and xlDown.
Return
from Delete
Column
Excel VBA
to VBA Code Samples
Return
to our Homepage