Страницы: 1
RSS
Удаление первого пустого столбца на всех листах книги
 
Здравствуйте, многоуважаемые профессионалы.
Подскажите, пожалуйста, как можно макросом удалить все первые пустые столбцы на всех листах книги.
В примере два листа книги, на одном не пустой первый столбец а на другом пустой первый столбец. в реальном файле таких листов порядка 100.

Буду очень благодарен за помощь и за любые идеи.
 
Код
Public Sub www()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If Application.CountA(sh.UsedRange.Columns(1)) = 0 Then sh.Columns(1).Delete
    Next
End Sub
Я сам - дурнее всякого примера! ...
 
1. Выделить все листы.
2. Удалить нужные столбцы на активном листе.
There is no knowledge that is not power
 
Johny,
Цитата
Константин Кольцов пишет:
В примере два листа книги, на одном не пустой первый столбец а на другом пустой первый столбец.
Я сам - дурнее всякого примера! ...
 
KuklP, Спасибо, большое. работает но почему то один раз, после первого добавления. потом, если опять добавить пустой столбец и запустить макрос - не работает.
 
попробуйте убрать UsedRange
Код
Public Sub www()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If Application.CountA(sh.Columns(1)) = 0 Then sh.Columns(1).Delete
    Next
End Sub
 
Лучше так, чтоб не обсчитывать весь столбец:
Код
Public Sub www()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        If Application.CountA(sh.Range("a1:a" & sh.UsedRange.Rows.Count)) = 0 Then sh.[a:a].Delete
    Next
End Sub
Я сам - дурнее всякого примера! ...
 
Сергей неправильно
 
создайте пустой лист напишите в ячейку A15 и B11 что-нибудь и запустите ваш последний код - он сотрёт столбец А хотя он не пустой
Изменено: Б А Х Т И Ё Р - 04.07.2013 12:51:19 (впихнул "что-нибудь")
 
Цитата
Б А Х Т И Ё Р пишет:
Сергей неправильно
Что именно?
Я сам - дурнее всякого примера! ...
 
Б А Х Т И Ё Р, KuklP, Спасибо, всё работает. работает версия где удалил UsedRange.

и спасибо Johny,, не знал, что если выделить все листы и делать изменения на текущем то изменения будут на всех.

вообщем спасибо всем, помогли. работа пошла быстрее.
 
Цитата
Константин Кольцов пишет:
реальном файле таких листов порядка 100.
Я предположил, что все листы с одинаковыми по структуре таблицами. Б А Х Т И Ё Р,  А так листы как Вы предложили, кто заполняет? Хотя можно приплюсовать к
sh.UsedRange.Rows.Count sh.UsedRange.cells(1).Row ... Но автору видней, надо ли это.
Я сам - дурнее всякого примера! ...
 
Цитата
KuklP пишет:
...автору видней...
согласен
Страницы: 1
Наверх