|
|
|
|
arturhome |
Понедельник, 17 Марта 2008, 13:31
|
Участник
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.09.2006
Пользователь №: 12456
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Есть простенкий макрос Код 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 Цифра в активной яйчеки отображает порядковым номер из списка который в свое время подставляется в форму для дальнейшей распечатки страницы Как дописать код что бы весь процесс повторялся автоматически до последнего порядкового номера в списке. Сообщение отредактировал arturhome - Вторник, 18 Марта 2008, 8:35
|
|
|
|
|
Квазимодо |
Вторник, 18 Марта 2008, 11:50
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
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
|
Участник
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.09.2006
Пользователь №: 12456
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Квазимодо Чет ругаеться твой код.. Да код должен напечатать все листы из книги в том числе и лист "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 не закончиться список.. Сообщение отредактировал arturhome - Вторник, 18 Марта 2008, 14:16
|
|
|
|
|
Квазимодо |
Вторник, 18 Марта 2008, 14:47
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
arturhome, а на что этот код ругался? Вроде бы перетащил с твоего кода... А вообще-то, если у тебя список идет до первой пустой строки, то цикл уже будет не For, а While (что-то вроде Код While Not IsEmpty(Worksheets("Лист1").Cells(j,1).Value) ... 'твои действия j=j+1 Wend ). Вместо Cells(j,1) подставишь что-то свое, если список у тебя не в первом столбце.
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|
|
|
|
|
arturhome |
Четверг, 20 Марта 2008, 15:30
|
Участник
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.09.2006
Пользователь №: 12456
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Что то не получаеться.. я же чайник ))
|
|
|
|
|
Квазимодо |
Пятница, 21 Марта 2008, 16:43
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
А можно подробнее, что именно не получается? Выскакивают ошибки при выполнении? Неправильные значения в тех ячейках, где ВПР()? Еще что-то? А то как-то не протелепатировать...
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|
|
|
|
|
arturhome |
Суббота, 22 Марта 2008, 9:09
|
Участник
Профиль
Группа: Участник
Сообщений: 39
Регистрация: 29.09.2006
Пользователь №: 12456
Конфигурация
Корпус: -- Процессор: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: -- CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Цитата(Квазимодо @ Вторник, 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) если ты напишешь полный код возможно что то я делаю не так.. могу выслать на мыло фаил .. что бы было более понятно.. скинь свое мыло..
|
|
|
|
|
Квазимодо |
Понедельник, 24 Марта 2008, 9:34
|
Участник
Профиль
Группа: Участник
Сообщений: 162
Регистрация: 25.11.2003
Пользователь №: 6223
Конфигурация
Корпус: -- Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Ага... Первое подозрение - что у тебя включено Option Explicit, а переменная j не определена. Или не задано значение перед входом в цикл. Но лучше все же вышли файл мне (alex_i собак electra-n тчк ru).
--------------------
Я долго учился на чужих ошибках, и теперь мои собственные ошибки не хуже, чем у других.
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|