Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Помажите чайнику

Автор: arturhome Понедельник, 17 Марта 2008, 13:31

Есть простенкий макрос

Код
Sub кодсправка()
For i = 1 To 100 'тут диапазон указываеться а как сделать что бы цикл выполнялся до последней не пустой ячейки?
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   ActiveSheet.Next.Select
   ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
   Sheets("AIDS").Select
   Range("I11").Select
   If IsNumeric(ActiveCell.Value) Then
   ActiveCell.Value = ActiveCell.Value + 1
 End If
 Next
End Sub


Цифра в активной яйчеки отображает порядковым номер из списка который в свое время подставляется в форму для дальнейшей распечатки страницы
Как дописать код что бы весь процесс повторялся автоматически до последнего порядкового номера в списке.
wallbash.gif

Автор: Квазимодо Вторник, 18 Марта 2008, 11:50

arturhome, а твой макрос что должен делать? Печатать все листы из книги и после печати каждого листа увеличивать на 1 номер в ячейке I11 листа "AIDS"? Тогда лучше попробовать другой цикл:

Код
For Each Ws In ActiveWorkbook.Worksheets
 If Ws.Name <> "AIDS" Then 'это чтобы пропустить печать самого листа AIDS
   Ws.PrintOut Copies:=1, Collate:=True
   Sheets("AIDS").Select
   Range("I11").Select
   If IsNumeric(ActiveCell.Value) Then
     ActiveCell.Value = ActiveCell.Value + 1
   End If
 End If
Next

Автор: arturhome Вторник, 18 Марта 2008, 14:10

Квазимодо Чет ругаеться твой код..

Да код должен напечатать все листы из книги в том числе и лист "AIDS"

Вобщем чуть поподробней..

Есть книга
в книге к примеру 3 листа
Лист1, Лист2. Лист3

На Лист1 список из 150 - 250 наименований кторый меняеться может 170.. 180 ... и.тд

Лист2 Форма настроеная под формулу ВПР() связанная с Лист1
Лист3 Форма настроеная под формулу ВПР() связанная с Лист1

макрос должен распечатать Лист2 и Лист3 и увеличить цифру в ячейки "I11" на Лист2
и так до последней не пустой ячейки Лист1


Печать Л2, Л3
возврат на Л2
+1 ячека I11
и опять Печать Л2, Л3....
до тех пор пока на Л1 не закончиться список.. wallbash.gif

Автор: Квазимодо Вторник, 18 Марта 2008, 14:47

arturhome, а на что этот код ругался? Вроде бы перетащил с твоего кода... А вообще-то, если у тебя список идет до первой пустой строки, то цикл уже будет не For, а While (что-то вроде

Код
While Not IsEmpty(Worksheets("Лист1").Cells(j,1).Value)
 ... 'твои действия
 j=j+1
Wend
). Вместо Cells(j,1) подставишь что-то свое, если список у тебя не в первом столбце.

Автор: arturhome Четверг, 20 Марта 2008, 15:30

Что то не получаеться.. я же чайник )) wallbash.gif

Автор: Квазимодо Пятница, 21 Марта 2008, 16:43

А можно подробнее, что именно не получается? Выскакивают ошибки при выполнении? Неправильные значения в тех ячейках, где ВПР()? Еще что-то? А то как-то не протелепатировать...

Автор: arturhome Суббота, 22 Марта 2008, 9:09

Цитата(Квазимодо @ Вторник, 18 Марта 2008, 14:47)
arturhome, а на что этот код ругался? Вроде бы перетащил с твоего кода... А вообще-то, если у тебя список идет до первой пустой строки, то цикл уже будет не For, а While (что-то вроде
Код
While Not IsEmpty(Worksheets("Лист1").Cells(j,1).Value)
 ... 'твои действия
 j=j+1
Wend
). Вместо Cells(j,1) подставишь что-то свое, если список у тебя не в первом столбце.
*



Квазимодо, все мои познания в коде VBA это записать макрос и просматерть код..
все остальное я пользуюсь помощью других хороших людей.. могу еще в справку залезть и почитать.. по экспериментировать..
с формулами все в порядке

я вставил свои действия в твой код.. но он не хочет работать..
даже не запускается
ругается на эту строчку While Not IsEmpty(Worksheets("Лист1").Cells(j,1).Value)

если ты напишешь полный код возможно что то я делаю не так..

могу выслать на мыло фаил .. что бы было более понятно..

скинь свое мыло..
worthy.gif



Автор: Квазимодо Понедельник, 24 Марта 2008, 9:34

Ага... Первое подозрение - что у тебя включено Option Explicit, а переменная j не определена. Или не задано значение перед входом в цикл. Но лучше все же вышли файл мне (alex_i собак electra-n тчк ru).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)