|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - *VBA* | Помогите написать макросы для Excel'я |
|
VBA - *VBA* | Помогите написать макросы для Excel'я
|
ove
Сообщения: n/a |
Пользователю предлагается заполнять определенные ячейки (прямоугольная область) на листе. Данные вводятся по строкам. Подскажите, как сделать, чтобы после заполнения последней ячейки в строке курсор перемещался не вправо, а в нужную ячейку на следующей строке.
[s]Исправлено: ove, 22:51 12-02-2003[/s] |
|
Отправлено: 22:49, 12-02-2003 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать MR.TOR, всегда рады помочь
![]() |
------- Отправлено: 00:49, 29-04-2010 | #51 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 57
|
Профиль | Отправить PM | Цитировать Помогите пожалуйста написать макрос. Мне нужно что бы из всех книг Excel удалялись все строки в которых первый столбец содержит МИ ( например МИ №1 или МИ №3 или МИ25), причем такие строки идут вперемешку с тем что надо оставить(а это все остальное).
Например Х| A | B | 1| МИ 10 | 25 | 2| РФ | 100 | В данном примере нужно чтобы удалилась первая строка, а вторая осталась Вот что я на ваял Но не работает - вообще ничего не удаляет . Где я ошибся? |
Последний раз редактировалось Delirium, 21-05-2010 в 01:12. Отправлено: 12:19, 20-05-2010 | #52 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Большой Кол, всего навсего использовали не тот цикл, потому и не удаляло. Рабочий код:
|
------- Отправлено: 01:12, 21-05-2010 | #53 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать ребята программисты, помогите плиз, нужно в книге выделить цветом на 2-х листах ячейки с одинаковыми записями (я выделил их вручную как бы я хотел что б это делалось). А еще лучше чтоб отобранные данніе сопоставлялись в отдельнои листе. Помогите с макросом. Заранее благодарен
Прилагаю файл (записей много потому он большой). |
Последний раз редактировалось BonoU2, 22-01-2011 в 00:47. Отправлено: 21:05, 16-07-2010 | #54 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать BonoU2, по каким полям проводить сверку? В выделенном примере на листе выделена запись с номером 001602. На первом листе 2 строки с таким номером.
|
------- Отправлено: 15:39, 17-07-2010 | #55 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать сравнения с листа 803 - ТОЛЬКО по столбцам e,f и листа Новичівська тоже ТОЛЬКО столбцы e,f , но при етом мне надо результат (я сделал вручную) как на листе1 - в виде столбцов, возможно так? заранее благодарен. (прикрепил переделланый чучуть)
|
Последний раз редактировалось BonoU2, 22-01-2011 в 00:47. Отправлено: 14:55, 18-07-2010 | #56 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Макрос запускается по сочетанию клавиш Ctrl+E. После отработки выводит сообщение Done и открывается результативный лист.
В архиве 2 файла, один в формате Excel 2003, другой - в формате Excel 2007. Они идентичны. |
------- Отправлено: 01:41, 19-07-2010 | #57 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Delirium огромное спасибо, а как сравнить только по столбцам f ? пожалуйста дайте цикл макроса ибо как мне использовать на других файлах?
|
Отправлено: 15:10, 19-07-2010 | #58 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать BonoU2, открываем Excel, жмем Alt+F11, открывается окно макросов, переходим на вкладку Modules - там и будет исходный текст нашего макроса. Ниже приведен его текст:
' ' ' Сочетание клавиш: Ctrl+e ' Dim RowCountL1 As Integer Dim RowCountL2 As Integer Dim ResultIndex As Integer Sheets("803").Select Range("A1").Select RowCountL1 = ActiveSheet.UsedRange.Rows.Count ' Кол-во строк на первом листе (803 который) Sheets("Новичівська").Select Range("A1").Select RowCountL2 = ActiveSheet.UsedRange.Rows.Count ' Кол-во строк на втором листе ResultIndex = 2 For i = 2 To RowCountL1 For j = 2 To RowCountL2 If Sheets("803").Cells(i, 5) = Sheets("Новичівська").Cells(j, 5) And Sheets("803").Cells(i, 6) = Sheets("Новичівська").Cells(j, 6) Then Sheets("Result").Cells(ResultIndex, 1) = Sheets("803").Cells(i, 1) Sheets("Result").Cells(ResultIndex, 2) = Sheets("803").Cells(i, 2) Sheets("Result").Cells(ResultIndex, 3) = Sheets("803").Cells(i, 3) Sheets("Result").Cells(ResultIndex, 4) = Sheets("803").Cells(i, 4) Sheets("Result").Cells(ResultIndex, 5) = Sheets("803").Cells(i, 5) Sheets("Result").Cells(ResultIndex, 6) = Sheets("803").Cells(i, 6) Sheets("Result").Cells(ResultIndex, 8) = Sheets("Новичівська").Cells(j, 1) Sheets("Result").Cells(ResultIndex, 9) = Sheets("Новичівська").Cells(j, 2) Sheets("Result").Cells(ResultIndex, 10) = Sheets("Новичівська").Cells(j, 3) Sheets("Result").Cells(ResultIndex, 11) = Sheets("Новичівська").Cells(j, 4) Sheets("Result").Cells(ResultIndex, 12) = Sheets("Новичівська").Cells(j, 5) Sheets("Result").Cells(ResultIndex, 13) = Sheets("Новичівська").Cells(j, 6) ResultIndex = ResultIndex + 1 End If Next j Next i MsgBox "Done" Sheets("Result").Activate If Sheets("803").Cells(i, 5) = Sheets("Новичівська").Cells(j, 5) And Sheets("803").Cells(i, 6) = Sheets("Новичівська").Cells(j, 6) Для использования в других файлах: ОТкрываем документ, идем Сервис-Макросы - Начать запись. Перед началом записи выбираем сочетание на клавиатуре для запуска. Начинаем запись и тут же останавливаем. Запускаем редактор (Alr+F11) и вставляем наш код. Следует учесть, что в макросе идет привязка к номерам столбцов, поэтому, если структура документа другая, то необходимо будет предварительно подправить код. |
------- Отправлено: 01:20, 20-07-2010 | #59 |
Новый участник Сообщения: 44
|
Профиль | Отправить PM | Цитировать Delirium Извените что надоедаю.вроде бы переделал так ка Вы говорили но что-то у меня не идет, останавливается, посмотрите пожалуйста вложение, я в коде переименовал листы и только по F сравниваю, правильно ли я сделал? и в дальнейшем если я просто в етот файл буду вставлять другие значения соответственно в лист 1 и 2 будет ли работать код? Заранее благодарен
|
Последний раз редактировалось BonoU2, 22-01-2011 в 00:47. Отправлено: 16:28, 20-07-2010 | #60 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBA - Помогите пожалуйста написать скрипт на VBA | Большой Кол | Программирование и базы данных | 6 | 22-10-2009 22:49 | |
VBA - VBA excel метод Холецкого | romcd73 | Программирование и базы данных | 2 | 19-06-2009 10:03 | |
VBA - помогите решить задачку Vba + Excel | hellp123 | Программирование и базы данных | 3 | 14-03-2009 01:15 | |
MsOffice | Макросы Excel, база данных | sitaka | Программирование и базы данных | 2 | 08-09-2006 20:13 | |
[решено] Отключить макросы на Excel и Worde через групповой политику | dosim | Microsoft Windows NT/2000/2003 | 8 | 07-08-2006 17:11 |
|