|
|
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
требуется распечатать лист при условии, если ячейка 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 содержит формулу, то есть данные в ней появляются как сумма нескольких ячеек с другого листа, может быть проблема в этом? Но пробовала и указывать диапазон ячеек с того листа - то же самое, хоть есть значения в них, что нет, все равно лист печатается, то есть все листы, вне зависимости от условия. С печатью столкнулась в первый раз, поэтому скорей всего где-то моя ошибка. ХЭЛП!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 15:46 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Так вы проверьте, что реально в этой ячейке. Отладчик вам в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:09 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
и когда пустая печатает и когда не пустая тоже печатает..... как будто условия вообще не стоит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:12 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
А откуда известно, пустая ячейка или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:16 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
У меня код работает как надо. Попробуйте вместо Код: plaintext написать Код: plaintext Вместо Worksheets.Item("Идеал") можна так Worksheets("Идеал") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:17 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
как откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:18 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Oksana Slonevskayaкак откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается.... Вы можете в отладчике посмотреть, что у вас реально в этой ячейке? И вообще, отладчиком умеете пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:21 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
FOksana Slonevskayaкак откуда? файл статичный. просто есть несколько листов, которые нужно распечатывать, если ячейка на каком-то из листов пустая, то этот лист не печается, если заполнена значением, то печатается.... Вы можете в отладчике посмотреть, что у вас реально в этой ячейке? И вообще, отладчиком умеете пользоваться? не очень умею, сейчас попытаюсь. вот что выдает в Immediate window [auto_open] < [SetupFunctionIDs] < [SetupFunct 810 0 ionIDs] > [PickPlatform] < [PickPlatform] > [VerifyOpen] < [VerifyOpen] > 1 [RegisterFunctionIDs] < [RegisterFunctionIDs] > [auto_open] > сначала значение было заполнено, я так понимаю вот эта строка и указывает на это [SetupFunct 810 0 затем я убрала значение, но все равно лист распечатывается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:32 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Вроде заработало вот так: 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 не пойму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:42 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Пардон, вот так работает: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:48 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. А если 256 листов будет? Слышали про циклы? Используйте: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:55 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
не работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:58 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Изучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 16:58 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
FИзучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое. я знаю, что такое отладчик, не надо передергивать, значение в ячейке пустое, это показывает и отладчик и глазами я это вижу, Вы пока ни одного сообщения по теме не дали.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:04 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
m Код: plaintext 1. 2. 3. 4. 5. А если 256 листов будет? Слышали про циклы? Используйте: Код: plaintext 1. 2. 3. 4. Спасибо, учту, работает если пишу вместо if Not IsEmpty(sheets(i).cells(14,4).value) then вот так: if (sheets(i).cells(14,4).value)<>0 then Спасибо еще раз огромное за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:05 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Oksana Slonevskayaне работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет.... Пора бы задуматься, почему с нулем работает, а с IsEmpty - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:07 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
FOksana Slonevskayaне работает через Not IsEmpty, хотя должно, и не важно, будет там цикл или нет.... Пора бы задуматься, почему с нулем работает, а с IsEmpty - нет. Если Вы такой умный - подскажите... Видимо Вы сами в этой среде знаете ровно столько, сколько и я ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:09 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Oksana SlonevskayaFИзучайте среду, в которой работаете. Отладчик это ваш главный рабочий инструмент. Пока что вы даже не знаете, что это такое. я знаю, что такое отладчик, не надо передергивать, значение в ячейке пустое, это показывает и отладчик и глазами я это вижу, Вы пока ни одного сообщения по теме не дали.... Как скажете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:10 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Oksana Slonevskayaне работает через Not IsEmpty, хотя должно IsEmpty(var) - указует на то, что переменная var типа вариант в коде до сих под не проинициализирована. Об этом недвусмысленно написано в хелпе на IsEmpty. Поэтому конструкция типа IsEmpty(wb.Worksheets.Item("Идеал").Range("D14")) - хоть синтаксически и верна, но даст всегда FALSE Not от нее - даст всегда TRUE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:11 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
qwrqwrIsEmpty(var) - указует на то, что переменная var типа вариант в коде до сих под не проинициализирована Действительно, так и записано, я сам сразу посмотрел. Но ведь работает: Если в ячейке A1 пусто Debug.Print IsEmpty(Range("A1")) = TRUE Если в ячейке A1 ставлю любое значение Debug.Print IsEmpty(Range("A1")) = FALSE :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:30 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
m (MaximuS), у автора вопроса выполнялся какой-то код или работали формулы. Все, что нужно было, это только посмотреть в отладчике, что реально содержится в ячейке на момент проверки ее на isEmpty. Неужели это так сложно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 17:53 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
m (MaximuS) Но ведь работает: Если в ячейке A1 пусто Debug.Print IsEmpty(Range("A1")) = TRUE и действительно... :)) Эх, такая классная теория была - и вот так легко разрушилась :)) зато если написать ="" то будет False, а Len() даст 0 по-прежнему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 18:11 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Fу автора вопроса выполнялся какой-то код или работали формулы. Все, что нужно было, это только посмотреть в отладчике, что реально содержится в ячейке на момент проверки ее на isEmpty. Неужели это так сложно? Не понял :)... Мне не сложно... qwrqwrзато если написать ="" то будет False, а Len() даст 0 по-прежнему :) Debug.Print Range("A1") = "" у меня True :))... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 18:45 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
mу меня True :))...я имел ввиду написать это в ячейке а1 :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.11.2009, 20:56 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
А я вчера отдыхал... (это к тому, что меня вспоминали :) ) ячейка D14 содержит формулу - в этом случае она уже Not IsEmpty ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 10:11 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
йцкя имел ввиду написать это в ячейке а1 :) Ха, точно :)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 10:47 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Hugo121А я вчера отдыхал... (это к тому, что меня вспоминали :) ) ячейка D14 содержит формулу - в этом случае она уже Not IsEmpty а как добавить к этому циклу. чтоб печаталось не на принтер, установленный по умолчанию, а выбирать можно было через диалоговое окно "печать"? Private Sub CommandButton1_Click() Dim wb As Workbook Set wb = ThisWorkbook For i = 1 To Sheets.Count If (Sheets(i).Cells(14, 4).Value) <> 0 Then Sheets(i).PrintOut End If Next i End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 11:47 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Не знаю, как насчёт выбирать, а вот назначить можно: Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 12:05 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
Лучше так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 12:24 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
ТСа как добавить к этому циклу. чтоб печаталось не на принтер, установленный по умолчанию, а выбирать можно было через диалоговое окно "печать"? Можна использовать такое Код: plaintext 1. Вероятно все это обходиться и можна найти варианты решения, но нужно разбираться :). Если бы нашли способ, получить список всех доступных принтеров, и потом через InputBox получили бы значение нужного, а дальше уже использовали его в программе, путем задания в коде, как показал Hugo121. Поищите, как найти все доступные принтеры, вот здесь , например есть решение, правда для Акцесса, но для Экселя думаю тоже подойдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 12:35 |
|
||
|
Печать листа в Excel при условии, если диапазон ячеек не пуст
|
|||
|---|---|---|---|
|
#18+
снимаю вопрос, оставлю так, как есть )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2009, 13:20 |
|
||
|
|

start [/forum/topic.php?all=1&fid=61&tid=2178820]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
244ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 554ms |

| 0 / 0 |
