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

Вход

Регистрация

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

 

= Мир MS Excel/Удаление пустых строк в диапазоне - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление пустых строк в диапазоне (Макросы/Sub)
Удаление пустых строк в диапазоне
den45444 Дата: Пятница, 21.08.2015, 10:26 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

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

Пример прикрепляю
К сообщению приложен файл: -2.xlsm (20.9 Kb)
 
Ответить
СообщениеПомогите с решением макроса. Нужно удалить пустые строки в диапазоне, от первой строки до конца таблицы, с учетом того, что ниже таблицы находится текст с пустыми строками, которые должны оставаться.

Пример прикрепляю

Автор - den45444
Дата добавления - 21.08.2015 в 10:26
den45444 Дата: Пятница, 21.08.2015, 12:30 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, Благодарю за помощь.

А если взять относительно ячейки со значением "Итого на материал:" ?
 
Ответить
СообщениеAndreTM, Благодарю за помощь.

А если взять относительно ячейки со значением "Итого на материал:" ?

Автор - den45444
Дата добавления - 21.08.2015 в 12:30
den45444 Дата: Пятница, 21.08.2015, 13:17 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, Как можно вставить данный макрос в этот макрос:
[vba]
Код
Private Const strName As String = "Общие файлы.xlsm"
Private Const strNameL As String = "СМЕТА"

'вывод листа strNameL в файл strName
Sub копия_для_договора()
     Dim str1 As String, rng1 As Range, rng2 As Range
          
         str1 = ThisWorkbook.Path & Application.PathSeparator
         Workbooks.Open Filename:=str1 & strName
          
         With Workbooks(strName)
         ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)
         .Save
         .Close 0
     End With
End Sub
[/vba]

Нужно, чтобы при копировании листа в другую книгу одновременно удалялись пустые строки.
 
Ответить
СообщениеAndreTM, Как можно вставить данный макрос в этот макрос:
[vba]
Код
Private Const strName As String = "Общие файлы.xlsm"
Private Const strNameL As String = "СМЕТА"

'вывод листа strNameL в файл strName
Sub копия_для_договора()
     Dim str1 As String, rng1 As Range, rng2 As Range
          
         str1 = ThisWorkbook.Path & Application.PathSeparator
         Workbooks.Open Filename:=str1 & strName
          
         With Workbooks(strName)
         ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)
         .Save
         .Close 0
     End With
End Sub
[/vba]

Нужно, чтобы при копировании листа в другую книгу одновременно удалялись пустые строки.

Автор - den45444
Дата добавления - 21.08.2015 в 13:17
den45444 Дата: Пятница, 21.08.2015, 14:03 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
AndreTM, Первый вариант. Только в копии.
 
Ответить
СообщениеAndreTM, Первый вариант. Только в копии.

Автор - den45444
Дата добавления - 21.08.2015 в 14:03
den45444 Дата: Суббота, 22.08.2015, 10:43 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Решил задачу попроще.

[vba]
Код
Sub удаление_пустых_строк()
Dim firstRow&, lastRow&, lSt&, lSt1&
         lSt = Columns("A:A").Find(What:="конец таблицы").Row
         firstRow = 1
         lastRow = lSt - 1
         Range("A" & firstRow & ":A" & lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
[/vba]
 
Ответить
СообщениеРешил задачу попроще.

[vba]
Код
Sub удаление_пустых_строк()
Dim firstRow&, lastRow&, lSt&, lSt1&
         lSt = Columns("A:A").Find(What:="конец таблицы").Row
         firstRow = 1
         lastRow = lSt - 1
         Range("A" & firstRow & ":A" & lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub
[/vba]

Автор - den45444
Дата добавления - 22.08.2015 в 10:43
den45444 Дата: Суббота, 22.08.2015, 10:46 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 225
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А вот макрос на копирование листа в другую книгу + удаление пустых строк в диапазоне.

Может кому-нибудь пригодится:

[vba]
Код
Private Const strName As String = "Общие файлы.xlsm"
Private Const strNameL As String = "СМЕТА"

'вывод листа strNameL в файл strName
Sub копия_для_договора()
     Dim str1 As String
     Dim firstRow&, lastRow&, lSt&
          
         str1 = ThisWorkbook.Path & Application.PathSeparator
         Workbooks.Open Filename:=str1 & strName
          
         With Workbooks(strName)
         ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)
         lSt = Columns("A:A").Find(What:="КОНЕЦ ТАБЛИЦЫ").Row
         firstRow = 1
         lastRow = lSt - 1
         Range("A" & firstRow & ":A" & lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
         ActiveSheet.Shapes("Button 1").Delete
         ActiveSheet.Shapes("Button 2").Delete
         ActiveSheet.Shapes("Button 3").Delete
         .Save
         .Close 0
     End With
End Sub
[/vba]
 
Ответить
СообщениеА вот макрос на копирование листа в другую книгу + удаление пустых строк в диапазоне.

Может кому-нибудь пригодится:

[vba]
Код
Private Const strName As String = "Общие файлы.xlsm"
Private Const strNameL As String = "СМЕТА"

'вывод листа strNameL в файл strName
Sub копия_для_договора()
     Dim str1 As String
     Dim firstRow&, lastRow&, lSt&
          
         str1 = ThisWorkbook.Path & Application.PathSeparator
         Workbooks.Open Filename:=str1 & strName
          
         With Workbooks(strName)
         ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)
         lSt = Columns("A:A").Find(What:="КОНЕЦ ТАБЛИЦЫ").Row
         firstRow = 1
         lastRow = lSt - 1
         Range("A" & firstRow & ":A" & lastRow).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
         ActiveSheet.Shapes("Button 1").Delete
         ActiveSheet.Shapes("Button 2").Delete
         ActiveSheet.Shapes("Button 3").Delete
         .Save
         .Close 0
     End With
End Sub
[/vba]

Автор - den45444
Дата добавления - 22.08.2015 в 10:46
AndreTM Дата: Суббота, 22.08.2015, 11:45 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
А форматирование ячеек сметы при таком подходе не сбивается в копии?
И ещё бы добавить переименование созданного листа, чтобы его потом можно было отыскать быстрее.
А по идее, надо вообще в "общий накопитель" скидывать не сметы в виде для печати, а даннве из смет, в единую таблицу, с датами и ссылками на заказы/договора. Тогда в последующем можно и анализ смет легко прикрутить. Хотя я не знаю, может вы ведете учет выполненных работ отдельными табличками, где и так все нормально...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
СообщениеА форматирование ячеек сметы при таком подходе не сбивается в копии?
И ещё бы добавить переименование созданного листа, чтобы его потом можно было отыскать быстрее.
А по идее, надо вообще в "общий накопитель" скидывать не сметы в виде для печати, а даннве из смет, в единую таблицу, с датами и ссылками на заказы/договора. Тогда в последующем можно и анализ смет легко прикрутить. Хотя я не знаю, может вы ведете учет выполненных работ отдельными табличками, где и так все нормально...

Автор - AndreTM
Дата добавления - 22.08.2015 в 11:45
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Удаление пустых строк в диапазоне (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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