powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Печать листа в Excel при условии, если диапазон ячеек не пуст
25 сообщений из 32, страница 1 из 2
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317634
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
требуется распечатать лист при условии, если ячейка D14 содержит значение. Вот что я написала:

Private Sub CommandButton1_Click()
Dim wb As Workbook

Set wb = ThisWorkbook

If Not IsEmpty(wb.Worksheets.Item("Идеал").Range("D14")) Then
wb.Worksheets.Item("Идеал").PrintOut
ElseIf Not IsEmpty(wb.Worksheets.Item("Масленица").Range("D14")) Then
wb.Worksheets.Item("Масленица").PrintOut
ElseIf Not IsEmpty(wb.Worksheets.Item("Масленица_5л").Range("D14")) Then
wb.Worksheets.Item("Масленица_5л").PrintOut
ElseIf Not IsEmpty(wb.Worksheets.Item("Олейна_1л").Range("D14")) Then
wb.Worksheets.Item("Олейна_1л").PrintOut
ElseIf Not IsEmpty(wb.Worksheets.Item("Олейна_3л").Range("D14")) Then
wb.Worksheets.Item("Олейна_3л").PrintOut
ElseIf Not IsEmpty(wb.Worksheets.Item("Олейна_5л").Range("D14")) Then
wb.Worksheets.Item("Олейна_5л").PrintOut
End If

End Sub

Но дело в том, что плевать он хотел на условие, хоть есть значение, хоть нет его. Подскажите, че не так? И еще, ячейка D14 содержит формулу, то есть данные в ней появляются как сумма нескольких ячеек с другого листа, может быть проблема в этом? Но пробовала и указывать диапазон ячеек с того листа - то же самое, хоть есть значения в них, что нет, все равно лист печатается, то есть все листы, вне зависимости от условия. С печатью столкнулась в первый раз, поэтому скорей всего где-то моя ошибка. ХЭЛП!!!!
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317711
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вы проверьте, что реально в этой ячейке. Отладчик вам в помощь.
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317726
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и когда пустая печатает и когда не пустая тоже печатает..... как будто условия вообще не стоит
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317738
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А откуда известно, пустая ячейка или нет?
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317743
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
У меня код работает как надо.
Попробуйте вместо
Код: plaintext
Not IsEmpty(wb.Worksheets.Item("Какой-то лист").Range("D14")

написать
Код: plaintext
Len(wb.Worksheets.Item("Какой-то лист").Range("D14").Value) >  0 
или ждите Hugo121 ;)...

Вместо Worksheets.Item("Идеал") можна так Worksheets("Идеал")
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317756
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается....
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317770
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oksana Slonevskayaкак откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается....
Вы можете в отладчике посмотреть, что у вас реально в этой ячейке?
И вообще, отладчиком умеете пользоваться?
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317819
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FOksana Slonevskayaкак откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается....
Вы можете в отладчике посмотреть, что у вас реально в этой ячейке?
И вообще, отладчиком умеете пользоваться?

не очень умею, сейчас попытаюсь. вот что выдает в Immediate window

[auto_open] <
[SetupFunctionIDs] <
[SetupFunct 810
0
ionIDs] >
[PickPlatform] <
[PickPlatform] >
[VerifyOpen] <
[VerifyOpen] > 1
[RegisterFunctionIDs] <
[RegisterFunctionIDs] >
[auto_open] >



сначала значение было заполнено, я так понимаю вот эта строка и указывает на это [SetupFunct 810
0
затем я убрала значение, но все равно лист распечатывается
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317841
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде заработало вот так:

Private Sub CommandButton1_Click()
Dim wb As Workbook

Set wb = ThisWorkbook

If wb.Worksheets("Идеал").Range("D14").Value <> 0 Then
wb.Worksheets.Item("Идеал").PrintOut
ElseIf wb.Worksheets.Item("Масленица").Range("D14") <> 0 Then
wb.Worksheets.Item("Масленица").PrintOut
ElseIf wb.Worksheets.Item("Масленица_5л").Range("D14") <> 0 Then
wb.Worksheets.Item("Масленица_5л").PrintOut
ElseIf wb.Worksheets.Item("Олейна_1л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_1л").PrintOut
ElseIf wb.Worksheets.Item("Олейна_3л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_3л").PrintOut
ElseIf wb.Worksheets.Item("Олейна_5л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_5л").PrintOut
End If

End Sub

Но почему не хочет через Not IsEmpty не пойму
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317865
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, вот так работает:

Private Sub CommandButton1_Click()
Dim wb As Workbook

Set wb = ThisWorkbook

If wb.Worksheets("Идеал").Range("D14").Value <> 0 Then
wb.Worksheets.Item("Идеал").PrintOut
End If
If wb.Worksheets.Item("Масленица").Range("D14") <> 0 Then
wb.Worksheets.Item("Масленица").PrintOut
End If
If wb.Worksheets.Item("Масленица_5л").Range("D14") <> 0 Then
wb.Worksheets.Item("Масленица_5л").PrintOut
End If
If wb.Worksheets.Item("Олейна_1л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_1л").PrintOut
End If
If wb.Worksheets.Item("Олейна_3л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_3л").PrintOut
End If
If wb.Worksheets.Item("Олейна_5л").Range("D14") <> 0 Then
wb.Worksheets.Item("Олейна_5л").PrintOut
End If

End Sub
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317886
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Код: plaintext
1.
2.
3.
4.
5.
If
..
End if
If
...
End if
Неправильно...

А если 256 листов будет?
Слышали про циклы? Используйте:
Код: plaintext
1.
2.
3.
4.
For i =  1  to sheets.count
if Not IsEmpty(sheets(i).cells( 14 , 4 ).value) then
sheets(i).printout
end if
next i
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317894
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет....
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317895
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое.
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317917
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FИзучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое.

я знаю, что такое отладчик, не надо передергивать, значение в ячейке пустое, это показывает и отладчик и глазами я это вижу, Вы пока ни одного сообщения по теме не дали....
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317920
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m
Код: plaintext
1.
2.
3.
4.
5.
If
..
End if
If
...
End if
Неправильно...

А если 256 листов будет?
Слышали про циклы? Используйте:
Код: plaintext
1.
2.
3.
4.
For i =  1  to sheets.count
if Not IsEmpty(sheets(i).cells( 14 , 4 ).value) then
sheets(i).printout
end if
next i



Спасибо, учту, работает если пишу вместо if Not IsEmpty(sheets(i).cells(14,4).value) then вот так:
if (sheets(i).cells(14,4).value)<>0 then
Спасибо еще раз огромное за помощь
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317925
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oksana Slonevskayaне работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет....
Пора бы задуматься, почему с нулем работает, а с IsEmpty - нет.
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317934
Oksana Slonevskaya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FOksana Slonevskayaне работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет....
Пора бы задуматься, почему с нулем работает, а с IsEmpty - нет.

Если Вы такой умный - подскажите... Видимо Вы сами в этой среде знаете ровно столько, сколько и я
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317939
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oksana SlonevskayaFИзучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое.

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

Как скажете.
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36317944
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oksana Slonevskayaне работает через Not IsEmpty, хотя должно
IsEmpty(var) - указует на то, что переменная var типа вариант в коде до сих под не проинициализирована.
Об этом недвусмысленно написано в хелпе на IsEmpty.
Поэтому конструкция типа IsEmpty(wb.Worksheets.Item("Идеал").Range("D14")) - хоть синтаксически и верна, но даст всегда FALSE
Not от нее - даст всегда TRUE.
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318019
m (MaximuS)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwrqwrIsEmpty(var) - указует на то, что переменная var типа вариант в коде до сих под не проинициализирована
Действительно, так и записано, я сам сразу посмотрел. Но ведь работает:
Если в ячейке A1 пусто
Debug.Print IsEmpty(Range("A1")) = TRUE
Если в ячейке A1 ставлю любое значение
Debug.Print IsEmpty(Range("A1")) = FALSE
:)
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318108
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m (MaximuS), у автора вопроса выполнялся какой-то код или работали формулы. Все, что нужно было, это только посмотреть в отладчике, что реально содержится в ячейке на момент проверки ее на isEmpty.
Неужели это так сложно?
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318171
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m (MaximuS) Но ведь работает:
Если в ячейке A1 пусто
Debug.Print IsEmpty(Range("A1")) = TRUE
и действительно... :)) Эх, такая классная теория была - и вот так легко разрушилась :))

зато если написать ="" то будет False, а Len() даст 0 по-прежнему :)
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318228
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Fу автора вопроса выполнялся какой-то код или работали формулы. Все, что нужно было, это только посмотреть в отладчике, что реально содержится в ячейке на момент проверки ее на isEmpty.
Неужели это так сложно?
Не понял :)... Мне не сложно...

qwrqwrзато если написать ="" то будет False, а Len() даст 0 по-прежнему :)
Debug.Print Range("A1") = "" у меня True :))...
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318408
йцк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mу меня True :))...я имел ввиду написать это в ячейке а1 :)
...
Рейтинг: 0 / 0
Печать листа в Excel при условии, если диапазон ячеек не пуст
    #36318958
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я вчера отдыхал... (это к тому, что меня вспоминали :) )
ячейка D14 содержит формулу - в этом случае она уже Not IsEmpty
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Печать листа в Excel при условии, если диапазон ячеек не пуст
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]