|
|
|
Печать листа в 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 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36317917&tid=2178820]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
169ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 489ms |

| 0 / 0 |
