Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование данных в документ, Нужен макрос 
:(
    Опции темы
Flotskiy
Дата 10.3.2005, 07:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: нет
Всего: 2



Рад приветствовать всех!
Прошу помочь в написании макроса для такой процедуры:
Программой VB в файл "MyFile.xls" на первый лист загружена информация:
A1- ФИО B1 - специальность (Возможно D1, E1, ... и т.д.)
Иванов И. И. Судомеханик

Возможно различное количество записей
Специальность - Судомеханик, Электромеханик, Судоводитель и т.д.
Список отсортирован по специальности.
На втором листе создана заготовка документа:
Список .......
по специальностям:
08870 Судомеханики
Свободная строка...
08880 Эл.механики
Свободная строка...
08890 Судоводители
Св. строка...

И т.д. Вопрос такой: из первого листа копировать список по одной специальности и
вставлять в свободную строку второго листа, а следующие строки перемещались вниз на столько строк, сколько было вставлено записей.
Количество записей по специальностам разное.
Сейчас выполняется так: подсчитывается кол-во записей, потом на листе 2 вставляется
такое же количество пустых строк, производится копирование и после того вставка данных
и т. д. весь документ
Можно ли как-нибудь автоматизировать данные действия?
С уважением

Это сообщение отредактировал(а) Flotskiy - 10.3.2005, 07:24
--------------------
FlotskiySk k
PM MAIL   Вверх
~FoX~
Дата 10.3.2005, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: нет
Всего: 68



Flotskiy
Я могу за 50$ smile
А вообще, чем собственный вариант не устраивает?
Ну неравиться сразу 23 стрички вставлять, вставляй по одной.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Flotskiy
Дата 10.3.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: нет
Всего: 2



Fox, привет!
Наверное, не все я объяснил.
Например, загружено всего 400 записей,
Судомехаников -100;
Эл.механиков - 150;
Судоводителей -80;
и т.д. и все надо скопировать в один документ под своим подзаголовком
И не один такой документ, целая куча обрабатывается - с оценками, медалями, льготами и т.п.
Это трудоемкое занятие. Вот и спрашиваю, может что можно усовершенствовать?
Всего доброго.
--------------------
FlotskiySk k
PM MAIL   Вверх
Staruha
Дата 10.3.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 6
Всего: 27



Цитата
Сейчас выполняется так: подсчитывается кол-во записей, потом на листе 2 вставляется
такое же количество пустых строк, производится копирование и после того вставка данных
и т. д. весь документ
- можно и не сложно.Но лучше файл приложи.


--------------------
Возмездие настигнет
PM MAIL   Вверх
Flotskiy
Дата 10.3.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: нет
Всего: 2



Старуха. рад приветствовать, с прошедшим 8 Марта! Наилучшие пожелания!
Я не знаю, как xls-файл приложить, подскажи, псе.
Всего доброго.
PS. Разобрался и приложил файл.

Это сообщение отредактировал(а) Flotskiy - 10.3.2005, 12:48

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Protokol.zip
--------------------
FlotskiySk k
PM MAIL   Вверх
Staruha
Дата 10.3.2005, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 6
Всего: 27



Код

Private Sub CommandButton1_Click()
Dim c As String
Dim e As String
Dim d As Integer
Dim t As Integer
t = Лист1.UsedRange.Rows.Count

For r = 2 To t

c = Лист1.Range("B" & r).Value
Select Case c
      Case "Гидротехник"
  e = "290400"
      Case c = "Организация перевозок"
  e = "240100"
      Case "Судоводитель"
  e = "240200"
      Case "Судомеханик"
  e = "240500"
      Case "Экономист"
  e = "060800"
     Case "Электромеханик"
  e = "240600"
End Select
    d = UsedRange.Rows.Count

For r1 = 8 To d

If e = Left(Range("A" & r1).Value, 6) Then
 Rows(r1 + 1).EntireRow.Insert
Range("B" & r1 + 1).Value = Лист1.Range("A" & r).Value
Range("C" & r1 + 1).Value = Лист1.Range("B" & r).Value

End If
Next r1
Next r
End Sub


Это сообщение отредактировал(а) Старуха - 10.3.2005, 23:38

Присоединённый файл ( Кол-во скачиваний: 18 )
Присоединённый файл  Protokol.xls


--------------------
Возмездие настигнет
PM MAIL   Вверх
Flotskiy
Дата 11.3.2005, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: нет
Всего: 2



Вечер добрый всем!
Старуха, скопировал файл и при нажатии на кнопку выдает:
Цитата
Ошибка выполнения '1004'. Метод Insert из класса Range завершен неверно

и остановился отладчик на строке
Цитата
Rows(r1 + 1).EntireRow.Insert

У меня Офис-97, может из-за этого не хочет работать?
Помогай, pse.
С уважением

Это сообщение отредактировал(а) Flotskiy - 11.3.2005, 13:55
--------------------
FlotskiySk k
PM MAIL   Вверх
Staruha
Дата 11.3.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 6
Всего: 27



Открой новую книгу.Зайди в Макросы -Начать запись.Выдели ячейку и зайди вставка-строки.Остановить запись.Затем зайди в макрос и почитай что там написано.А может кто еще поможет.У меня все работает2003


--------------------
Возмездие настигнет
PM MAIL   Вверх
Staruha
Дата 11.3.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 6
Всего: 27



Код

Range("A" & r1 + 1).Select
 Rows(r1 + 1).EntireRow.Insert

попробуй так
только надо r1,а не r

Это сообщение отредактировал(а) Старуха - 11.3.2005, 16:43


--------------------
Возмездие настигнет
PM MAIL   Вверх
Flotskiy
Дата 11.3.2005, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 15.11.2004
Где: г. Омск

Репутация: нет
Всего: 2



Старуха, благодарю тебя, добавил первую строку и все заработало.
Спасибо, всего доброго.
--------------------
FlotskiySk k
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Работа с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Работа с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.