ICEM@n
Гость
|
|
« : 10-10-2006 12:49 » |
|
Всем приветПо возможности помогите с вопросом. Как написать макрос для Excel'я? Чтобы по нажатию кнопки, данные из строки =Лист1!Ax:Dx копировались в строку Лист2!A1:D1, где x- задаётся номером выделенной на данный момент строки либо прописывается в ячейке
|
|
« Последнее редактирование: 07-12-2007 19:38 от Алексей1153++ »
|
Записан
|
|
|
|
Falsehood
Молодой специалист
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
|
|
« Ответ #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 » |
|
Sla, ок спасибо ... буду думать
|
|
|
Записан
|
|
|
|
RomCom
|
|
« Ответ #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
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #10 : 13-10-2006 08:15 » |
|
то ли у copy, то ли у paste есть опция, переносить форматирование, или нет...
|
|
|
Записан
|
|
|
|
ICEM@n
Гость
|
|
« Ответ #11 : 13-10-2006 09:23 » |
|
Falsehood, понимаю что должны быть ... только вот пока не нарыл нигде
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #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
|
|
« Ответ #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
а ты уверен? а ты проверил? специально сел и проверил - работает
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
|