Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выделение/удаление столбца - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение/удаление столбца (Макросы/Sub)
Выделение/удаление столбца
Roman777 Дата: Четверг, 12.03.2015, 12:17 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Добрый день!
Хочу удалить определённый столбец (определяемый по условию). На каждом листе книги.
Пишу:
[vba]
Код
      sht.Cells(2, j1).Column.Select
      Selection.Delete Shift:=xlToLeft
[/vba]

Как это можно осуществить правильно?


Много чего не знаю!!!!
 
Ответить
СообщениеДобрый день!
Хочу удалить определённый столбец (определяемый по условию). На каждом листе книги.
Пишу:
[vba]
Код
      sht.Cells(2, j1).Column.Select
      Selection.Delete Shift:=xlToLeft
[/vba]

Как это можно осуществить правильно?

Автор - Roman777
Дата добавления - 12.03.2015 в 12:17
_Boroda_ Дата: Четверг, 12.03.2015, 12:22 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так?
[vba]
Код
    For Each sh_ In ThisWorkbook.Worksheets
         sh_.Columns(j1).Delete
     Next sh_
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак?
[vba]
Код
    For Each sh_ In ThisWorkbook.Worksheets
         sh_.Columns(j1).Delete
     Next sh_
[/vba]

Автор - _Boroda_
Дата добавления - 12.03.2015 в 12:22
Roman777 Дата: Четверг, 12.03.2015, 12:28 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
_Boroda_, Спасибо! Идеально! А что тогда задаёт Shift:=xlToLeft? я пробовал xltoRight и разницы не ощутил...


Много чего не знаю!!!!
 
Ответить
Сообщение_Boroda_, Спасибо! Идеально! А что тогда задаёт Shift:=xlToLeft? я пробовал xltoRight и разницы не ощутил...

Автор - Roman777
Дата добавления - 12.03.2015 в 12:28
Roman777 Дата: Четверг, 12.03.2015, 12:32 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
И выделить таким методом не получается
Пишу:
[vba]
Код
sh_.Columns(j1).select
[/vba]
Говорит о том, что неверно завершён метод.


Много чего не знаю!!!!
 
Ответить
СообщениеИ выделить таким методом не получается
Пишу:
[vba]
Код
sh_.Columns(j1).select
[/vba]
Говорит о том, что неверно завершён метод.

Автор - Roman777
Дата добавления - 12.03.2015 в 12:32
_Boroda_ Дата: Четверг, 12.03.2015, 12:32 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А как Вы себе представляете удаление столбца со смещением вправо?
я думал, что J1 - это переменная. Если это ссылка на ячейку, тогда так
[vba]
Код
    For Each sh_ In ThisWorkbook.Worksheets
         sh_.Columns("J").Delete Shift:=xlToRight
     Next sh_
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА как Вы себе представляете удаление столбца со смещением вправо?
я думал, что J1 - это переменная. Если это ссылка на ячейку, тогда так
[vba]
Код
    For Each sh_ In ThisWorkbook.Worksheets
         sh_.Columns("J").Delete Shift:=xlToRight
     Next sh_
[/vba]

Автор - _Boroda_
Дата добавления - 12.03.2015 в 12:32
Roman777 Дата: Четверг, 12.03.2015, 12:35 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
J1 - это переменная...). Я думал, что смещаться будет выделение. А не сам столбец). Но я понимаю что выделения тут вообще не происходит. Просто когда xlToLeft, хочется проверить что такое будет xlToRight, а он даже ошибки не выдал.


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Четверг, 12.03.2015, 12:36
 
Ответить
СообщениеJ1 - это переменная...). Я думал, что смещаться будет выделение. А не сам столбец). Но я понимаю что выделения тут вообще не происходит. Просто когда xlToLeft, хочется проверить что такое будет xlToRight, а он даже ошибки не выдал.

Автор - Roman777
Дата добавления - 12.03.2015 в 12:35
RAN Дата: Четверг, 12.03.2015, 13:26 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Варианты
[vba]
Код
Cells(1, 1).Offset(, 3).EntireColumn.Delete

Cells(1, 1).EntireColumn.Delete

Columns(i).Delete
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВарианты
[vba]
Код
Cells(1, 1).Offset(, 3).EntireColumn.Delete

Cells(1, 1).EntireColumn.Delete

Columns(i).Delete
[/vba]

Автор - RAN
Дата добавления - 12.03.2015 в 13:26
Roman777 Дата: Четверг, 12.03.2015, 13:40 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
RAN, Спасибо за столько вариант! А можно варианты с выделением столбцов? (иногда удобно видеть как код выделяет их, чтобы пошагово проверить корректность работы)


Много чего не знаю!!!!
 
Ответить
СообщениеRAN, Спасибо за столько вариант! А можно варианты с выделением столбцов? (иногда удобно видеть как код выделяет их, чтобы пошагово проверить корректность работы)

Автор - Roman777
Дата добавления - 12.03.2015 в 13:40
RAN Дата: Четверг, 12.03.2015, 14:18 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Delete удаляет, Select выделяет, Clear очищает.
Остальное все то же.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеDelete удаляет, Select выделяет, Clear очищает.
Остальное все то же.

Автор - RAN
Дата добавления - 12.03.2015 в 14:18
Roman777 Дата: Четверг, 12.03.2015, 14:48 | Сообщение № 10
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
RAN, Спасибо ещё раз! У меня просто не во всех случаях, где ставилось delete можно было ставить и Select и clear... (ваши варианты тоже проверил с первым и вторым - всё вроде работает, а вот с "Columns(i).Delete" .select не работает).


Много чего не знаю!!!!
 
Ответить
СообщениеRAN, Спасибо ещё раз! У меня просто не во всех случаях, где ставилось delete можно было ставить и Select и clear... (ваши варианты тоже проверил с первым и вторым - всё вроде работает, а вот с "Columns(i).Delete" .select не работает).

Автор - Roman777
Дата добавления - 12.03.2015 в 14:48
Manyasha Дата: Четверг, 12.03.2015, 14:55 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Roman777, Здравствуйте. Если i - это целочисленная переменная (например, i = 3), тогда
[vba]
Код
i = 3
Columns(i).Delete'.Select
[/vba]
А если i - это название столбца, тогда[vba]
Код
Columns("i").Delete'.Select
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеRoman777, Здравствуйте. Если i - это целочисленная переменная (например, i = 3), тогда
[vba]
Код
i = 3
Columns(i).Delete'.Select
[/vba]
А если i - это название столбца, тогда[vba]
Код
Columns("i").Delete'.Select
[/vba]

Автор - Manyasha
Дата добавления - 12.03.2015 в 14:55
Roman777 Дата: Четверг, 12.03.2015, 15:19 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Manyasha, Добрый день!
Я подставил тупо числом:
[vba]
Код
Columns(5).select
[/vba]
Выдало ошибку.


Много чего не знаю!!!!
 
Ответить
СообщениеManyasha, Добрый день!
Я подставил тупо числом:
[vba]
Код
Columns(5).select
[/vba]
Выдало ошибку.

Автор - Roman777
Дата добавления - 12.03.2015 в 15:19
Roman777 Дата: Четверг, 12.03.2015, 15:22 | Сообщение № 13
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
И мб немного не в тему будет вопрос. Возможно ли выделение диапазона таким образом:

[vba]
Код
         Set range1 = sht.Cells(3, j).Resize(i_n - 2)
          range1.Select
[/vba]
?


Много чего не знаю!!!!
 
Ответить
СообщениеИ мб немного не в тему будет вопрос. Возможно ли выделение диапазона таким образом:

[vba]
Код
         Set range1 = sht.Cells(3, j).Resize(i_n - 2)
          range1.Select
[/vba]
?

Автор - Roman777
Дата добавления - 12.03.2015 в 15:22
RAN Дата: Четверг, 12.03.2015, 15:29 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Выдало ошибку.

Не верю!
Возможно ли

А попробовать?


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Выдало ошибку.

Не верю!
Возможно ли

А попробовать?

Автор - RAN
Дата добавления - 12.03.2015 в 15:29
Roman777 Дата: Четверг, 12.03.2015, 15:37 | Сообщение № 15
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
RAN, Manyasha, Прошу прощения, в этот раз попробовал
[vba]
Код
Sub проверка()
Columns(5).Select
End Sub
[/vba]
Всё работает. Наверное что-то невнимательно проглядел в предыдущий раз. Хотя код безумно мелкий, что тут можно проглядеть то...)

А вот с проверить.
Попробовал
[vba]
Код
Sub ïðîâåðêà2()
Dim range1 As Range
Dim sht As Worksheet

Set ActWB = ActiveWorkbook
For Each sht In ActWB.Worksheets

Set range1 = sht.Cells(3, 2).Resize(10)
          range1.Select
Next sht
End Sub
[/vba]
Пишет на строчке Set range1 = sht.Cells(3, 2).Resize(10) "что неверное завершён метод Select из Range класса"
Я потому и спрашиваю, как можно подобное выделение реализовать? именно при использовании .Resize?


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Четверг, 12.03.2015, 15:40
 
Ответить
СообщениеRAN, Manyasha, Прошу прощения, в этот раз попробовал
[vba]
Код
Sub проверка()
Columns(5).Select
End Sub
[/vba]
Всё работает. Наверное что-то невнимательно проглядел в предыдущий раз. Хотя код безумно мелкий, что тут можно проглядеть то...)

А вот с проверить.
Попробовал
[vba]
Код
Sub ïðîâåðêà2()
Dim range1 As Range
Dim sht As Worksheet

Set ActWB = ActiveWorkbook
For Each sht In ActWB.Worksheets

Set range1 = sht.Cells(3, 2).Resize(10)
          range1.Select
Next sht
End Sub
[/vba]
Пишет на строчке Set range1 = sht.Cells(3, 2).Resize(10) "что неверное завершён метод Select из Range класса"
Я потому и спрашиваю, как можно подобное выделение реализовать? именно при использовании .Resize?

Автор - Roman777
Дата добавления - 12.03.2015 в 15:37
Manyasha Дата: Четверг, 12.03.2015, 15:58 | Сообщение № 16
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
[vba]
Код
Set range1 = Cells(3, 2).Resize(10)
range1.Select
[/vba]
UPD.
А в цикле вот так можно:
[vba]
Код
For Each sht In ActWB.Worksheets
      sht.Activate
      Set range1 = Cells(3, 2).Resize(10)
      range1.Select
Next sht
[/vba]


ЯД: 410013299366744 WM: R193491431804

Сообщение отредактировал Manyasha - Четверг, 12.03.2015, 16:24
 
Ответить
Сообщение[vba]
Код
Set range1 = Cells(3, 2).Resize(10)
range1.Select
[/vba]
UPD.
А в цикле вот так можно:
[vba]
Код
For Each sht In ActWB.Worksheets
      sht.Activate
      Set range1 = Cells(3, 2).Resize(10)
      range1.Select
Next sht
[/vba]

Автор - Manyasha
Дата добавления - 12.03.2015 в 15:58
RAN Дата: Четверг, 12.03.2015, 16:26 | Сообщение № 17
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Select можно использовать только на активном листе.
Если sht активный, будет работать, если нет, будет ошибка.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеSelect можно использовать только на активном листе.
Если sht активный, будет работать, если нет, будет ошибка.

Автор - RAN
Дата добавления - 12.03.2015 в 16:26
Roman777 Дата: Пятница, 13.03.2015, 10:18 | Сообщение № 18
Группа: Проверенные
Ранг: Ветеран
Сообщений: 980
Репутация: 127 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
Manyasha, RAN, Спасибо большое! Весьма исчерпывающе.


Много чего не знаю!!!!
 
Ответить
СообщениеManyasha, RAN, Спасибо большое! Весьма исчерпывающе.

Автор - Roman777
Дата добавления - 13.03.2015 в 10:18
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выделение/удаление столбца (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!