Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Доработка записанного макрорекордером макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин, _Boroda_  
Доработка записанного макрорекордером макроса
light26 Дата: Понедельник, 02.01.2012, 23:02 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Доброго времени суток, господа (дамы, разумеется, тоже).
Вот тут была создана тема. В одном из сообщений этой темы просили заставить Excel делать перенос из одной книги в другую по условию.
Я записал свой первый макрос (с помощью макрорекордера) и поделился им. В принципе, я понимаю что делает этот макрос, могу его прочитать, но не знаю как его исправить, чтобы он делал то, что нужно! При переносе на лист "Да" или "Нет" значений из листа "Данные", предыдущие значения "затираются" и вставляются новые. А по "сценарию" значения должны выстраиваться в список (в следующей строке). Где и что надо поменять/добавить, чтобы макрос работал правильно?


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Вторник, 03.01.2012, 00:00
 
Ответить
СообщениеДоброго времени суток, господа (дамы, разумеется, тоже).
Вот тут была создана тема. В одном из сообщений этой темы просили заставить Excel делать перенос из одной книги в другую по условию.
Я записал свой первый макрос (с помощью макрорекордера) и поделился им. В принципе, я понимаю что делает этот макрос, могу его прочитать, но не знаю как его исправить, чтобы он делал то, что нужно! При переносе на лист "Да" или "Нет" значений из листа "Данные", предыдущие значения "затираются" и вставляются новые. А по "сценарию" значения должны выстраиваться в список (в следующей строке). Где и что надо поменять/добавить, чтобы макрос работал правильно?

Автор - light26
Дата добавления - 02.01.2012 в 23:02
RAN Дата: Понедельник, 02.01.2012, 23:29 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вадим, приблизительно в 17-30 у меня возникла идея создать подобную тему именно для тебя!
Quote (light26)
В принципе, я понимаю что делает этот макрос, могу его прочитать, но не знаю как его исправить

А вот как раз это и не есть правда. Если понимаешь - можешь поправить.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВадим, приблизительно в 17-30 у меня возникла идея создать подобную тему именно для тебя!
Quote (light26)
В принципе, я понимаю что делает этот макрос, могу его прочитать, но не знаю как его исправить

А вот как раз это и не есть правда. Если понимаешь - можешь поправить.

Автор - RAN
Дата добавления - 02.01.2012 в 23:29
Serge_007 Дата: Понедельник, 02.01.2012, 23:32 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016

Quote (RAN)
Если понимаешь - можешь поправить

Андрей, ты не прав. Если ты понимаешь как работает формула/код, то это не значит что ты можешь её написать/подправить. Можно тупо не знать синтаксис. Или каких-нибудь ограничений. Или совместимости операторов. Или ещё чего-нибудь в этом роде.

Вадим - предупреждение. Пока устное. Название темы меняй.

Всё, .


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (RAN)
Если понимаешь - можешь поправить

Андрей, ты не прав. Если ты понимаешь как работает формула/код, то это не значит что ты можешь её написать/подправить. Можно тупо не знать синтаксис. Или каких-нибудь ограничений. Или совместимости операторов. Или ещё чего-нибудь в этом роде.

Вадим - предупреждение. Пока устное. Название темы меняй.

Всё, .

Автор - Serge_007
Дата добавления - 02.01.2012 в 23:32
KuklP Дата: Понедельник, 02.01.2012, 23:39 | Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Quote (Serge_007)
Если ты понимаешь как работает формула/код, то это не значит что ты можешь её написать/подправить. Можно тупо не знать синтаксис.
Не согласен. Подправить как раз сможешь. И если понимаешь, значит и с синтаксисом как-то знаком. Сужу по себе.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Quote (Serge_007)
Если ты понимаешь как работает формула/код, то это не значит что ты можешь её написать/подправить. Можно тупо не знать синтаксис.
Не согласен. Подправить как раз сможешь. И если понимаешь, значит и с синтаксисом как-то знаком. Сужу по себе.

Автор - KuklP
Дата добавления - 02.01.2012 в 23:39
light26 Дата: Понедельник, 02.01.2012, 23:43 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Serge_007)
Название темы меняй.

И как ее поменять?
Quote (Serge_007)
Вадим - предупреждение. Пока устное.

Да я просто не мог придумать название теме. sad Приношу глубочайшие и искренние извинения за несоблюдение правил!


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (Serge_007)
Название темы меняй.

И как ее поменять?
Quote (Serge_007)
Вадим - предупреждение. Пока устное.

Да я просто не мог придумать название теме. sad Приношу глубочайшие и искренние извинения за несоблюдение правил!

Автор - light26
Дата добавления - 02.01.2012 в 23:43
Serge_007 Дата: Понедельник, 02.01.2012, 23:48 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (KuklP)
Подправить как раз сможешь

Серёг, сколько раз ты на форумах видел вопрос типа "Как увеличить кол-во вложений ЕСЛИ?"?
Постоянно возникает. А почему? Потому что люди ПОНИМАЮТ как работает функция, пользуются ей, но упираются в ограничение, которое не могут обойти. В этом случае просто используется другая функция, но вот эту, другую функцию, человек может и НЕ ЗНАТЬ...

Пример конечно не самый лучший, но суть должна быть понятна.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (KuklP)
Подправить как раз сможешь

Серёг, сколько раз ты на форумах видел вопрос типа "Как увеличить кол-во вложений ЕСЛИ?"?
Постоянно возникает. А почему? Потому что люди ПОНИМАЮТ как работает функция, пользуются ей, но упираются в ограничение, которое не могут обойти. В этом случае просто используется другая функция, но вот эту, другую функцию, человек может и НЕ ЗНАТЬ...

Пример конечно не самый лучший, но суть должна быть понятна.

Автор - Serge_007
Дата добавления - 02.01.2012 в 23:48
Serge_007 Дата: Понедельник, 02.01.2012, 23:49 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (light26)
И как ее поменять?

Начни редактировать топик и измени название темы.

Quote (light26)
я просто не мог придумать название теме

Ты что этой темой хочешь узнать?
Вот это и пиши в название.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (light26)
И как ее поменять?

Начни редактировать топик и измени название темы.

Quote (light26)
я просто не мог придумать название теме

Ты что этой темой хочешь узнать?
Вот это и пиши в название.

Автор - Serge_007
Дата добавления - 02.01.2012 в 23:49
light26 Дата: Понедельник, 02.01.2012, 23:49 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
А вот как раз это и не есть правда. Если понимаешь - можешь поправить.

Правда, правда. Я понимаю, потому что писал ее макрорекордером. Разумеется, помню свои действия. Знаю что значит cut и delete. А вот что сделать для того, чтобы, например после cut происходил paste, но уже во второй строке, а не в той же, я не знаю. Я не знаю как заставить делать cut, paste и delete после выбора в столбце В значения Да или Нет и т.п.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
А вот как раз это и не есть правда. Если понимаешь - можешь поправить.

Правда, правда. Я понимаю, потому что писал ее макрорекордером. Разумеется, помню свои действия. Знаю что значит cut и delete. А вот что сделать для того, чтобы, например после cut происходил paste, но уже во второй строке, а не в той же, я не знаю. Я не знаю как заставить делать cut, paste и delete после выбора в столбце В значения Да или Нет и т.п.

Автор - light26
Дата добавления - 02.01.2012 в 23:49
RAN Дата: Понедельник, 02.01.2012, 23:49 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Макросы... (Будем учиться)
И будем учиться!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеМакросы... (Будем учиться)
И будем учиться!

Автор - RAN
Дата добавления - 02.01.2012 в 23:49
light26 Дата: Понедельник, 02.01.2012, 23:52 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Serge_007)
Начни редактировать топик и измени название темы.

Так лучше? wink


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (Serge_007)
Начни редактировать топик и измени название темы.

Так лучше? wink

Автор - light26
Дата добавления - 02.01.2012 в 23:52
light26 Дата: Понедельник, 02.01.2012, 23:56 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
И будем учиться!

Для этого и создал тему smile
Вот, кстати, мысля меня посетила:
А правильно будет в начале кода использовать
Code

Sub Перенос()
'
' Перенос Макрос
if "В:В"="Да" then
Range("A1").Select
Selection.Cut
Sheets("Да").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
end if
Range("A1").Select
Selection.Cut
Sheets("Нет").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
End Sub


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Вторник, 03.01.2012, 00:10
 
Ответить
Сообщение
Quote (RAN)
И будем учиться!

Для этого и создал тему smile
Вот, кстати, мысля меня посетила:
А правильно будет в начале кода использовать
Code

Sub Перенос()
'
' Перенос Макрос
if "В:В"="Да" then
Range("A1").Select
Selection.Cut
Sheets("Да").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
end if
Range("A1").Select
Selection.Cut
Sheets("Нет").Select
ActiveSheet.Paste
Columns("A:A").EntireColumn.AutoFit
Sheets("Данные").Select
Selection.Delete Shift:=xlUp
Range("B1").Select
Selection.ClearContents
End Sub

Автор - light26
Дата добавления - 02.01.2012 в 23:56
Serge_007 Дата: Понедельник, 02.01.2012, 23:57 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (light26)
Так лучше?

Правилам соответствует, но если честно - суть так себе...

Я бы выбрал такое направление: Доработка записанного макрорекордером макроса.


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (light26)
Так лучше?

Правилам соответствует, но если честно - суть так себе...

Я бы выбрал такое направление: Доработка записанного макрорекордером макроса.

Автор - Serge_007
Дата добавления - 02.01.2012 в 23:57
nerv Дата: Понедельник, 02.01.2012, 23:57 | Сообщение № 13
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

light26, проверяйте, правильно ли Вы поняли, что делает макрос (писАл на скорую руку, мог ошибиться, думаю поправят)

[vba]
Code
Sub Перенос()
'
' Перенос Макрос
'
       Range("A1").Select ' выделить ячейку А1
       Selection.Cut ' вырезать выделение
       Sheets("Да").Select ' переключиться на лист Да
       ActiveSheet.Paste ' вставить
       Columns("A:A").EntireColumn.AutoFit ' подобрать ширину столбца А
       Sheets("Данные").Select ' переключиться на лист Данные
       Selection.Delete Shift:=xlUp ' удалить выделенное со сдвигом вверх
       Range("B1").Select ' выделить ячйку В1
       Selection.ClearContents ' очистить значения в выделении
       Range("A1").Select ' выделить ячейку А1 : ) О боже)))
       Selection.Cut ' вырезать выделение
       Sheets("Нет").Select ' переключиться на лист Нет
       ActiveSheet.Paste ' вставить
       Columns("A:A").EntireColumn.AutoFit ' подобрать ширину столбца А
       Sheets("Данные").Select ' переключиться на лист Данные
       Selection.Delete Shift:=xlUp ' удалить выделенное со сдвигом вверх
       Range("B1").Select ' выделить ячйку В1
       Selection.ClearContents ' очистить значения в выделении
End Sub
[/vba]


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщениеlight26, проверяйте, правильно ли Вы поняли, что делает макрос (писАл на скорую руку, мог ошибиться, думаю поправят)

[vba]
Code
Sub Перенос()
'
' Перенос Макрос
'
       Range("A1").Select ' выделить ячейку А1
       Selection.Cut ' вырезать выделение
       Sheets("Да").Select ' переключиться на лист Да
       ActiveSheet.Paste ' вставить
       Columns("A:A").EntireColumn.AutoFit ' подобрать ширину столбца А
       Sheets("Данные").Select ' переключиться на лист Данные
       Selection.Delete Shift:=xlUp ' удалить выделенное со сдвигом вверх
       Range("B1").Select ' выделить ячйку В1
       Selection.ClearContents ' очистить значения в выделении
       Range("A1").Select ' выделить ячейку А1 : ) О боже)))
       Selection.Cut ' вырезать выделение
       Sheets("Нет").Select ' переключиться на лист Нет
       ActiveSheet.Paste ' вставить
       Columns("A:A").EntireColumn.AutoFit ' подобрать ширину столбца А
       Sheets("Данные").Select ' переключиться на лист Данные
       Selection.Delete Shift:=xlUp ' удалить выделенное со сдвигом вверх
       Range("B1").Select ' выделить ячйку В1
       Selection.ClearContents ' очистить значения в выделении
End Sub
[/vba]

Автор - nerv
Дата добавления - 02.01.2012 в 23:57
RAN Дата: Понедельник, 02.01.2012, 23:59 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вадим, поскольку это далеко не первый твой вопрос, давай строить диалог так:
Ты пишешь любой макрос.
Возникает вопрос по любой строке.
Ты задаешь, мы отвечаем.
Предварительно есть смысл познакомиться со справкой.
Если вопросы дублируются - ответ ??? Может дам, че ты хошь!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВадим, поскольку это далеко не первый твой вопрос, давай строить диалог так:
Ты пишешь любой макрос.
Возникает вопрос по любой строке.
Ты задаешь, мы отвечаем.
Предварительно есть смысл познакомиться со справкой.
Если вопросы дублируются - ответ ??? Может дам, че ты хошь!

Автор - RAN
Дата добавления - 02.01.2012 в 23:59
light26 Дата: Вторник, 03.01.2012, 00:01 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (Serge_007)
Я бы выбрал такое направление: Доработка записанного макрорекордером макроса.

Спасибо за подсказку. Исправил


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (Serge_007)
Я бы выбрал такое направление: Доработка записанного макрорекордером макроса.

Спасибо за подсказку. Исправил

Автор - light26
Дата добавления - 03.01.2012 в 00:01
light26 Дата: Вторник, 03.01.2012, 00:03 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (nerv)
проверяйте, правильно ли Вы поняли, что делает макрос

Повторюсь. Я его не просто понял. Я его сам записывал через макрорекордер. Все действия помню, поэтому и макрос могу прочитать. Но внести дополнения/изменения мне не под силу. Пока я еще деревянный smile


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (nerv)
проверяйте, правильно ли Вы поняли, что делает макрос

Повторюсь. Я его не просто понял. Я его сам записывал через макрорекордер. Все действия помню, поэтому и макрос могу прочитать. Но внести дополнения/изменения мне не под силу. Пока я еще деревянный smile

Автор - light26
Дата добавления - 03.01.2012 в 00:03
light26 Дата: Вторник, 03.01.2012, 00:07 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
Ты пишешь любой макрос.

Андрей, если я его запишу, вопросов не возникнет по записи. Вопросы возникнут по внесению в ней изменений smile
Посмотри тут


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (RAN)
Ты пишешь любой макрос.

Андрей, если я его запишу, вопросов не возникнет по записи. Вопросы возникнут по внесению в ней изменений smile
Посмотри тут

Автор - light26
Дата добавления - 03.01.2012 в 00:07
RAN Дата: Вторник, 03.01.2012, 00:11 | Сообщение № 18
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
С комментариями nerv, этот макрос не для "деревянных", а для "оловянных".
Вадим, хоть застрели, не пойму, что там не ясно может быть?


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеС комментариями nerv, этот макрос не для "деревянных", а для "оловянных".
Вадим, хоть застрели, не пойму, что там не ясно может быть?

Автор - RAN
Дата добавления - 03.01.2012 в 00:11
light26 Дата: Вторник, 03.01.2012, 00:18 | Сообщение № 19
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (RAN)
не пойму, что там не ясно может быть?

Да в макросе мне все ясно. Но он не выполняет тех функций, которые требуется.
Задача:
Если в любой ячейке столбца В напротив значения ячейки столбца А установить одно из значений списка ("Да", "Нет"), то значение из ячейки столбца А должно переместиться в лист Да или Нет (в зависимости от значения ячейки столбца В в той же строке)
Мой макрос только копирует и вставляет, но не по указанному выше сценарию


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Вторник, 03.01.2012, 00:20
 
Ответить
Сообщение
Quote (RAN)
не пойму, что там не ясно может быть?

Да в макросе мне все ясно. Но он не выполняет тех функций, которые требуется.
Задача:
Если в любой ячейке столбца В напротив значения ячейки столбца А установить одно из значений списка ("Да", "Нет"), то значение из ячейки столбца А должно переместиться в лист Да или Нет (в зависимости от значения ячейки столбца В в той же строке)
Мой макрос только копирует и вставляет, но не по указанному выше сценарию

Автор - light26
Дата добавления - 03.01.2012 в 00:18
light26 Дата: Вторник, 03.01.2012, 00:21 | Сообщение № 20
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Прошу прощенья, господа. Завтра продолжим... Жена зовет. Всем пока


Я не волшебник. Я только учусь
 
Ответить
СообщениеПрошу прощенья, господа. Завтра продолжим... Жена зовет. Всем пока

Автор - light26
Дата добавления - 03.01.2012 в 00:21
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!