Ну и наворочено! Если бы еще и четко понимать задачу. Что нужно то? Печатать путевой на какую то конкретную дату? Или подряд с 5-й по 34-ю строку реестра? Или еще как то. Задача решается с помощью ДВССЫЛ() и возможно макросом, строк 10-12 кода. Только надо понять что надо.
Ну и наворочено! Если бы еще и четко понимать задачу. Что нужно то? Печатать путевой на какую то конкретную дату? Или подряд с 5-й по 34-ю строку реестра? Или еще как то. Задача решается с помощью ДВССЫЛ() и возможно макросом, строк 10-12 кода. Только надо понять что надо.Wasilich
day24 = 28 If Rows(28) = Hide Then day24 = "" If day24 = "" Then Exit Sub
[/vba]
Немного длинновато Вы сравниваете Row(28) которое имеет значение совсем не логическое с логическим значением(!!!). Ошибка так и пишет, если перевести на русский, то - "несоответствие типов". Вам надо сравнивать значение свойства Rows(28).Hidden = Hide И если уж давать совсем правильный ответ, то выглядеть эти две строчки должны так [vba]
Код
If Rows(28).Hidden Then Exit Sub
[/vba] Одной строчкой, правда я совсем не понимаю зачем она там
ЗЫ Давно не писал на VBA, но знающие люди меня поправят если что
day24 = 28 If Rows(28) = Hide Then day24 = "" If day24 = "" Then Exit Sub
[/vba]
Немного длинновато Вы сравниваете Row(28) которое имеет значение совсем не логическое с логическим значением(!!!). Ошибка так и пишет, если перевести на русский, то - "несоответствие типов". Вам надо сравнивать значение свойства Rows(28).Hidden = Hide И если уж давать совсем правильный ответ, то выглядеть эти две строчки должны так [vba]
Код
If Rows(28).Hidden Then Exit Sub
[/vba] Одной строчкой, правда я совсем не понимаю зачем она там
ЗЫ Давно не писал на VBA, но знающие люди меня поправят если что M73568
Что нужно то? Печатать путевой на какую то конкретную дату? Или подряд с 5-й по 34-ю строку реестра? Или еще как то.
По теории надо с 5-й по 34-ю строку реєстра, но это за условии 30-ти рабочих дней. В основном рабочих дней 20-25, поэтому лишние строки скрываются. И вот на данный момент надо как то показать (написать) что бы не печатались пустые строчки! Если есть вариант с ДЫССЫЛ () с удовольствием погляжу.
Что нужно то? Печатать путевой на какую то конкретную дату? Или подряд с 5-й по 34-ю строку реестра? Или еще как то.
По теории надо с 5-й по 34-ю строку реєстра, но это за условии 30-ти рабочих дней. В основном рабочих дней 20-25, поэтому лишние строки скрываются. И вот на данный момент надо как то показать (написать) что бы не печатались пустые строчки! Если есть вариант с ДЫССЫЛ () с удовольствием погляжу.anger47
M73568, на печать у меня тоже бросает, но минус в том что и данные с пустых строк тоже((( получается видает пустой шаблон. а я хотел бы, что бы если строка пустая, то печать прекращалась бы.
M73568, на печать у меня тоже бросает, но минус в том что и данные с пустых строк тоже((( получается видает пустой шаблон. а я хотел бы, что бы если строка пустая, то печать прекращалась бы.anger47
Sub podstav() Dim day1&, day2& Application.ScreenUpdating = False day1 = 5 day2 = day1 + 2 For day1 = 5 To Sheets("Реєстр").UsedRange.Rows.Count ' Вместо Sheets("Реєстр").UsedRange.Rows.Count подставьте конечную строку. Вместо 5 начальную. If Sheets("Реєстр").Rows(day1).EntireRow.Hidden = True Then day1 = day1 + 1 day2 = day1 + 2 End If
If Sheets("Реєстр").Cells(day1, 3).Value = "" Then Exit Sub ' Проверка на пустую ячейку в столбце С (даты)
day1 = day1 + 1 day2 = day1 + 2 Next Application.ScreenUpdating = True End Sub
[/vba]
Как-то так.
PS: добавил проверку на пустую ячейку. PSPS: Были небольшие правки в коде.
[vba]
Код
Sub podstav() Dim day1&, day2& Application.ScreenUpdating = False day1 = 5 day2 = day1 + 2 For day1 = 5 To Sheets("Реєстр").UsedRange.Rows.Count ' Вместо Sheets("Реєстр").UsedRange.Rows.Count подставьте конечную строку. Вместо 5 начальную. If Sheets("Реєстр").Rows(day1).EntireRow.Hidden = True Then day1 = day1 + 1 day2 = day1 + 2 End If
If Sheets("Реєстр").Cells(day1, 3).Value = "" Then Exit Sub ' Проверка на пустую ячейку в столбце С (даты)
Если есть вариант с ДЫССЫЛ () с удовольствием погляжу
С удовольствием покажу. Хоть и опоздал. А может кому и пригодится. Макрос, в ячейке А1 ставит № начиная с 5 по 34, пропуская № строки, какой то пустой ячейки, (я взял для примера столбец Е). Так вот, этот № используется в ссылке на ячейку реестра, например:- В73
Код
=ДВССЫЛ("Реєстр!C" & A1 )
и так в остальных. А код - десяток примитивных строк.
Если есть вариант с ДЫССЫЛ () с удовольствием погляжу
С удовольствием покажу. Хоть и опоздал. А может кому и пригодится. Макрос, в ячейке А1 ставит № начиная с 5 по 34, пропуская № строки, какой то пустой ячейки, (я взял для примера столбец Е). Так вот, этот № используется в ссылке на ячейку реестра, например:- В73
Код
=ДВССЫЛ("Реєстр!C" & A1 )
и так в остальных. А код - десяток примитивных строк.Wasilich