Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: макрос копирования из Лист1!A1 в Лист2!В5  (Прочитано 23145 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
ICEM@n
Гость
« : 10-10-2006 12:49 » 

Всем привет
По возможности помогите с вопросом. Как написать макрос для Excel'я? Чтобы по нажатию кнопки, данные из строки =Лист1!Ax:Dx копировались в строку Лист2!A1:D1, где x- задаётся номером выделенной на данный момент строки либо прописывается в ячейке  Быть такого не может
« Последнее редактирование: 07-12-2007 19:38 от Алексей1153++ » Записан
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #1 : 10-10-2006 13:14 » 

Вид >> Панели инструментов >> Элементы управления
с этой панели встявить на лист кнопку.

потом записать перечисленные тобой действия в макрос, в редакторе VBA этот макрос подкорректировать, если потребуется, и вставить получившийся код в функцию CommandButton1_Click()
Записан

Славная трава...
ICEM@n
Гость
« Ответ #2 : 10-10-2006 13:18 » 

Примерно разобрался ....

Цитата
Sub X()
    Range("D9").Select
    Selection.copy
    Range("D10").Select
    ActiveSheet.Paste
End Sub

только вот надо чтобы номер строки которая будет копироваться ... задавался в ячейке ... или был постоянно из активной ячейки
*сижу в думках ... как тут константа задаёцца*  Быть такого не может
Записан
ICEM@n
Гость
« Ответ #3 : 10-10-2006 13:22 » 

Falsehood,
спасибо ... именно так и разбирался, но незнаю как вместо Range("D9").Select, а именно вместо D9 задать число в ячейке, который буду вбивать ручками в ячейку
Записан
ICEM@n
Гость
« Ответ #4 : 10-10-2006 13:25 » 

тоесть вмето D9 должно быть D(x), где х - число из ячейки допустим A1    Скромно так...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 10-10-2006 14:42 » 

Код:
Sub AAAA()
    Sheets("Лист1").Select
    Range("A1").Select
    Selection.Copy
    dest = Worksheets("Лист1").Range("B1").Value
    Sheets("Лист2").Select
    Range(dest).Select
    ActiveSheet.Paste
End Sub
дальше думай сам
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
ICEM@n
Гость
« Ответ #6 : 10-10-2006 15:03 » new

Sla, ок спасибо ... буду думать  Быть такого не может
Записан
RomCom
Опытный

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 10-10-2006 23:19 » 

Код:
Sub X()
    Range("D" & Range("A1").Text).Select
    Selection.copy
    Range("D10").Select
    ActiveSheet.Paste
End Sub
Записан

R.O.M.C.O.M.: Robotic Operational Mathematics and Ceaseless Observation Machine
ICEM@n
Гость
« Ответ #8 : 13-10-2006 07:01 » 

RomCom,
спасибо ... помогло.  Класс!

а форум то ... живой   Внимание! Говорит и показывает...
Записан
ICEM@n
Гость
« Ответ #9 : 13-10-2006 08:03 » 

а вот еще грабельки возникли ....
при копировании ... вставляются не только данные ... но и рамки от таблицы в которой были данные ... это не есть хорошо
Можно ли этого как-то избежать ? (полюбому ж можно  Скромно так... )
Записан
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #10 : 13-10-2006 08:15 » 

то ли у copy, то ли у paste есть опция, переносить форматирование, или нет...
Записан

Славная трава...
ICEM@n
Гость
« Ответ #11 : 13-10-2006 09:23 » 

Falsehood, понимаю что должны быть ... только вот пока не нарыл нигде  Быть такого не может
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 13-10-2006 09:57 » 

сделай следующее
запись макрос
копируешь ячейку
специальная вставка (значения)
останавливаешь запись
смотришь что получилось

а нам расскажешь Улыбаюсь
должно полчиться типа
Код:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
« Последнее редактирование: 13-10-2006 09:59 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
ICEM@n
Гость
« Ответ #13 : 13-10-2006 10:16 » 

Sla, Falsehood, всем респект и уважуха  Для глухих
всё получилось .... Внимание! Говорит и показывает...

если кому понадобится вот часть кода макроса (такая весч может понадобиться для формирования личной карточки струдника из базы) :
Код:
Sub copy()

Range("A" & Range("A1").Text).Select
Selection.copy
Range("B17").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Записан
_serj_
Гость
« Ответ #14 : 12-09-2007 13:39 » 

Неужели все так должно быть сложно. Почему я могу скопировать ячейку Cells(1, 1).Value = Cells(1, 2).Value, а к другому листу обратиться не могу.
Примерно так: WorkSheets(1).Cells(1, 1).Value = WorkSheets(2).Cells(1, 1).Value
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 12-09-2007 14:32 » 

Неужели все так должно быть сложно. Почему я могу скопировать ячейку Cells(1, 1).Value = Cells(1, 2).Value, а к другому листу обратиться не могу.
Примерно так: WorkSheets(1).Cells(1, 1).Value = WorkSheets(2).Cells(1, 1).Value
а ты уверен? а ты проверил?
специально сел и проверил - работает
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines