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

Вход

Регистрация

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

 

= Мир MS Excel/Почему программа не срабатывает для всех листов книги - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Почему программа не срабатывает для всех листов книги (Макросы/Sub)
Почему программа не срабатывает для всех листов книги
Anastasia235 Дата: Вторник, 01.07.2014, 14:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
добрый день подскажите пожалуйста, пытаюсь написать программу которая удаляет пустые строки и столбцы, но почему этот код работает некорректно не могу никак понять, при чем вроде бы просматривает он все листы но вот выполняет удаление только на том листе на котором находится кнопка...

[vba]
Код
Private Sub CommandButton1_Click()
      
     Dim sheet As Worksheet
     Application.ScreenUpdating = False
     For Each sheet In ThisWorkbook.Worksheets
      
         LastRow = sheet.UsedRange.Row - 1 + sheet.UsedRange.Rows.Count    'определение размеров таблицы
         MsgBox (LastRow)
         Dim r As Integer
         For r = LastRow To 1 Step -1           'проход от последней строки до превой
             'h = Application.CountA(Rows(r))
             If Application.CountA(Rows(r)) = 0 Then sheet.Rows(r).Delete   'если в строке пусто удаляем её
         Next r
          
         LastColumn = sheet.UsedRange.Column - 1 + sheet.UsedRange.Columns.Count
         MsgBox (LastColumn)
         Dim k As Integer
         For k = LastColumn To 1 Step -1           'проход от последней колонки до превой
             If Application.CountA(Columns(k)) = 0 Then sheet.Columns(k).Delete   'если в колонке пусто удаляем её
         Next k
     Next
      
End Sub
[/vba]
 
Ответить
Сообщениедобрый день подскажите пожалуйста, пытаюсь написать программу которая удаляет пустые строки и столбцы, но почему этот код работает некорректно не могу никак понять, при чем вроде бы просматривает он все листы но вот выполняет удаление только на том листе на котором находится кнопка...

[vba]
Код
Private Sub CommandButton1_Click()
      
     Dim sheet As Worksheet
     Application.ScreenUpdating = False
     For Each sheet In ThisWorkbook.Worksheets
      
         LastRow = sheet.UsedRange.Row - 1 + sheet.UsedRange.Rows.Count    'определение размеров таблицы
         MsgBox (LastRow)
         Dim r As Integer
         For r = LastRow To 1 Step -1           'проход от последней строки до превой
             'h = Application.CountA(Rows(r))
             If Application.CountA(Rows(r)) = 0 Then sheet.Rows(r).Delete   'если в строке пусто удаляем её
         Next r
          
         LastColumn = sheet.UsedRange.Column - 1 + sheet.UsedRange.Columns.Count
         MsgBox (LastColumn)
         Dim k As Integer
         For k = LastColumn To 1 Step -1           'проход от последней колонки до превой
             If Application.CountA(Columns(k)) = 0 Then sheet.Columns(k).Delete   'если в колонке пусто удаляем её
         Next k
     Next
      
End Sub
[/vba]

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

2010
[vba]
Код
If Application.CountA(sheet.Rows(r))
[/vba]
Вероятно тут (и для столбца тоже)
И sheet лучше поменять на что либо другое.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
If Application.CountA(sheet.Rows(r))
[/vba]
Вероятно тут (и для столбца тоже)
И sheet лучше поменять на что либо другое.

Автор - RAN
Дата добавления - 01.07.2014 в 15:15
Anastasia235 Дата: Среда, 02.07.2014, 13:40 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
RAN, спасибо исправление [vba]
Код
If Application.CountA(sheet.Rows(r))
[/vba] помогло, а почему sheet лучше поменять на что-то другое?
 
Ответить
СообщениеRAN, спасибо исправление [vba]
Код
If Application.CountA(sheet.Rows(r))
[/vba] помогло, а почему sheet лучше поменять на что-то другое?

Автор - Anastasia235
Дата добавления - 02.07.2014 в 13:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Почему программа не срабатывает для всех листов книги (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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