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

Вход

Регистрация

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

 

= Мир MS Excel/Оставить столбцы по условию, остальные удалить - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оставить столбцы по условию, остальные удалить (Макросы/Sub)
Оставить столбцы по условию, остальные удалить
monstr_ork Дата: Вторник, 10.07.2018, 20:37 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Товарищи форумчане, подскажите код, пожалуйста. Требуется оставить столбцы по условию, а остальные удалить.
Мне , к примеру, нужно оставить стоблец2,4, 8 и 10.
Т.е. я знаю какие столбцы будут в файле. которые мне нужны, но я не знаю в какой позиции они будут.
К сообщению приложен файл: 2411843.xlsm(16.6 Kb)
 
Ответить
СообщениеТоварищи форумчане, подскажите код, пожалуйста. Требуется оставить столбцы по условию, а остальные удалить.
Мне , к примеру, нужно оставить стоблец2,4, 8 и 10.
Т.е. я знаю какие столбцы будут в файле. которые мне нужны, но я не знаю в какой позиции они будут.

Автор - monstr_ork
Дата добавления - 10.07.2018 в 20:37
RAN Дата: Вторник, 10.07.2018, 20:40 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4787
Репутация: 964 ±
Замечаний: 0% ±

2010
К примеру, как разместить столбец 2 на 25 позиции?
В файле это заголовки...
Тогда удаление столбцов по условию ничем не отличается от удаления строк по условию.
То, что удалять будем столбцы, а не строки - не в счет. :D


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Вторник, 10.07.2018, 20:43
 
Ответить
СообщениеК примеру, как разместить столбец 2 на 25 позиции?
В файле это заголовки...
Тогда удаление столбцов по условию ничем не отличается от удаления строк по условию.
То, что удалять будем столбцы, а не строки - не в счет. :D

Автор - RAN
Дата добавления - 10.07.2018 в 20:40
monstr_ork Дата: Вторник, 10.07.2018, 20:45 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
К примеру, как разместить столбец 2 на 25 позиции?

Не понял вопроса. мне в таблице нужно оставить только определенные столбцы, а остальные удалить.
Я раньше через запись макроса, поставил какие столбцы нужно удалить, но оказалось это не очень хороший метод, т.к. под каждый файл нужно редактировать макрос.

Вы уже изменили свой ответ...
Я с вами согласен, только я не понял, как несколько условий задать


Сообщение отредактировал monstr_ork - Вторник, 10.07.2018, 20:47
 
Ответить
Сообщение
К примеру, как разместить столбец 2 на 25 позиции?

Не понял вопроса. мне в таблице нужно оставить только определенные столбцы, а остальные удалить.
Я раньше через запись макроса, поставил какие столбцы нужно удалить, но оказалось это не очень хороший метод, т.к. под каждый файл нужно редактировать макрос.

Вы уже изменили свой ответ...
Я с вами согласен, только я не понял, как несколько условий задать

Автор - monstr_ork
Дата добавления - 10.07.2018 в 20:45
_Boroda_ Дата: Вторник, 10.07.2018, 21:14 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 12686
Репутация: 5200 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Не давало вставлять код VBA почему-то
Два макроса. Выбирайте
[vba]
Код
Sub tt()
t_ = "@Столбец2@Столбец4@Столбец8@Столбец10@"
c1_ = Cells(1, Columns.Count).End(1).Column
ar = Cells(1).Resize(1, c1_)
Application.ScreenUpdating = 0
Application.Calculation = xlCalculationManual
For i = c1_ To 1 Step -1
If InStr(t_, "@" & ar(1, i) & "@") = 0 Then Columns(i).Delete
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 1
End Sub

Sub ttt()
Application.ScreenUpdating = 0
Application.Calculation = xlCalculationManual
Set slov = CreateObject("Scripting.Dictionary")
With slov
aaa = .Item("СТОЛБЕЦ2")
aaa = .Item("СТОЛБЕЦ4")
aaa = .Item("СТОЛБЕЦ8")
aaa = .Item("СТОЛБЕЦ10")
c1_ = Cells(1, Columns.Count).End(1).Column
ar = Cells(1).Resize(1, c1_)
For i = c1_ To 1 Step -1
If Not .Exists(UCase(ar(1, i))) Then Columns(i).Delete
Next i
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 1
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНе давало вставлять код VBA почему-то
Два макроса. Выбирайте
[vba]
Код
Sub tt()
t_ = "@Столбец2@Столбец4@Столбец8@Столбец10@"
c1_ = Cells(1, Columns.Count).End(1).Column
ar = Cells(1).Resize(1, c1_)
Application.ScreenUpdating = 0
Application.Calculation = xlCalculationManual
For i = c1_ To 1 Step -1
If InStr(t_, "@" & ar(1, i) & "@") = 0 Then Columns(i).Delete
Next i
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 1
End Sub

Sub ttt()
Application.ScreenUpdating = 0
Application.Calculation = xlCalculationManual
Set slov = CreateObject("Scripting.Dictionary")
With slov
aaa = .Item("СТОЛБЕЦ2")
aaa = .Item("СТОЛБЕЦ4")
aaa = .Item("СТОЛБЕЦ8")
aaa = .Item("СТОЛБЕЦ10")
c1_ = Cells(1, Columns.Count).End(1).Column
ar = Cells(1).Resize(1, c1_)
For i = c1_ To 1 Step -1
If Not .Exists(UCase(ar(1, i))) Then Columns(i).Delete
Next i
End With
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = 1
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 10.07.2018 в 21:14
monstr_ork Дата: Пятница, 13.07.2018, 21:14 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 86
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, большое спасибо за помощь, вопрос решен.
 
Ответить
Сообщение_Boroda_, большое спасибо за помощь, вопрос решен.

Автор - monstr_ork
Дата добавления - 13.07.2018 в 21:14
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оставить столбцы по условию, остальные удалить (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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