Есть документ который необходимо распечатать. Необходимо вывести макрос, что бы сначало проверял есть ли вообще какие-то данные в диапазоне A5:A26, если они есть то он удалял пустые строчки и уже потом делал печать.
Если в данном диапазоне нету данных для печати, то макрос переходит на след документ, предположительно Скл 2 и проверял там в точно таком же диапазоне.
Есть документ который необходимо распечатать. Необходимо вывести макрос, что бы сначало проверял есть ли вообще какие-то данные в диапазоне A5:A26, если они есть то он удалял пустые строчки и уже потом делал печать.
Если в данном диапазоне нету данных для печати, то макрос переходит на след документ, предположительно Скл 2 и проверял там в точно таком же диапазоне.temnoo
Sub removeBlankRows() Application.ScreenUpdating = False Dim sh As Worksheet, lr As Long, i As Long For Each sh In ThisWorkbook.Sheets If sh.Name Like "Скл*" Then With sh If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row For i = lr To 5 Step -1 If .Cells(i, 1) = "" Then .Rows(i).Delete Next i .PrintOut Copies:=1 End If End With End If Next sh Application.ScreenUpdating = True End Sub
[/vba]
temnoo, так пойдет? [vba]
Код
Sub removeBlankRows() Application.ScreenUpdating = False Dim sh As Worksheet, lr As Long, i As Long For Each sh In ThisWorkbook.Sheets If sh.Name Like "Скл*" Then With sh If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row For i = lr To 5 Step -1 If .Cells(i, 1) = "" Then .Rows(i).Delete Next i .PrintOut Copies:=1 End If End With End If Next sh Application.ScreenUpdating = True End Sub
Manyasha, Данный макрос все равно печатает лист, например Скл 3, даже если я обнуляю значения в диапазоне A5:A26. Необходимо что бы он его пропускал.
Manyasha, Данный макрос все равно печатает лист, например Скл 3, даже если я обнуляю значения в диапазоне A5:A26. Необходимо что бы он его пропускал.temnoo
Sub removeBlankRows() Application.ScreenUpdating = False Dim sh As Worksheet, lr As Long, i As Long For Each sh In ThisWorkbook.Sheets If sh.Name Like "Скл*" Then With sh 'If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row If lr > 5 Then For i = lr To 5 Step -1 If .Cells(i, 1) = "" Then .Rows(i).Delete Next i .PrintOut Copies:=1 End If End With End If Next sh Application.ScreenUpdating = True End Sub
[/vba]
Добрый день. Попробуйте так [vba]
Код
Sub removeBlankRows() Application.ScreenUpdating = False Dim sh As Worksheet, lr As Long, i As Long For Each sh In ThisWorkbook.Sheets If sh.Name Like "Скл*" Then With sh 'If Not Intersect(.Range("A5:A26"), .UsedRange) Is Nothing Then lr = .Cells(Rows.Count, 1).End(xlUp).Row If lr > 5 Then For i = lr To 5 Step -1 If .Cells(i, 1) = "" Then .Rows(i).Delete Next i .PrintOut Copies:=1 End If End With End If Next sh Application.ScreenUpdating = True End Sub
Wasilich, Все равно печатает лист целиком хотя в данном диапазоне нету данных совсем. Может привязать этот макрос к какой нибудь определенной ячейки, где будет считаться количество ячеек с данными в диапазоне A5:A26 и если это количество будет равно 0 то печататься данный лист не будет.
Файл прикрепил. Как будет выглядеть код макроса?
Wasilich, Все равно печатает лист целиком хотя в данном диапазоне нету данных совсем. Может привязать этот макрос к какой нибудь определенной ячейки, где будет считаться количество ячеек с данными в диапазоне A5:A26 и если это количество будет равно 0 то печататься данный лист не будет.
Файл прикрепил. Как будет выглядеть код макроса?temnoo
Не буду спорить, если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула =ЕСЛИ(A142=2;B142;""), (пример) через которую и получается какое-то значение либо "". И вот тогда она ее печатает. Хотя там (в диапазоне) пусто.
Не буду спорить, если удалить все данные в диапазоне A5:A26 кнопкой delete то ничего не печатается, круто, но в данных ячейках есть формула =ЕСЛИ(A142=2;B142;""), (пример) через которую и получается какое-то значение либо "". И вот тогда она ее печатает. Хотя там (в диапазоне) пусто.temnoo
Слишком много сарказм. Я взял пример из поста 12 и вставил формулу, что когда ЛОЖЬ то значение приобретает "" и он все равно печатает. Я надеюсь я правильно выражаю мысль
Слишком много сарказм. Я взял пример из поста 12 и вставил формулу, что когда ЛОЖЬ то значение приобретает "" и он все равно печатает. Я надеюсь я правильно выражаю мысльtemnoo
В листе "скл 3" в диапазоне от А5 до А26 во всех ячейках стоит значение ="", что для меня это означает "пусто". Очень бы хотелось, что бы макрос не печатал этот лист. Пока он просто не скрывает там строчки
В листе "скл 3" в диапазоне от А5 до А26 во всех ячейках стоит значение ="", что для меня это означает "пусто". Очень бы хотелось, что бы макрос не печатал этот лист. Пока он просто не скрывает там строчкиtemnoo