|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - *VBA* | Помогите написать макросы для Excel'я |
|
VBA - *VBA* | Помогите написать макросы для Excel'я
|
ove
Сообщения: n/a |
Пользователю предлагается заполнять определенные ячейки (прямоугольная область) на листе. Данные вводятся по строкам. Подскажите, как сделать, чтобы после заполнения последней ячейки в строке курсор перемещался не вправо, а в нужную ячейку на следующей строке.
[s]Исправлено: ove, 22:51 12-02-2003[/s] |
|
Отправлено: 22:49, 12-02-2003 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Я тоже его поробовал раскопировать. В конце получил вопрос - В буфере имеется большой список данных - сохранить его? Это при одном единственном столбце в Листе1. А если столбцов будет к примеру - 32 с разными данными? Попробуйте поэкспериментировать - Незабуксует программа?
Можно попробовать ещё вот так: |
Последний раз редактировалось azbest, 21-11-2008 в 21:42. Отправлено: 17:40, 20-11-2008 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Технолог Сообщения: 819
|
Профиль | Отправить PM | Цитировать Цитата Admiral:
|
|
Отправлено: 23:12, 20-11-2008 | #32 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Pliomera, да конечно, но то наочние для новичков, которые ещё не знают про Chr$, а про массивы уже знают.
|
Отправлено: 23:49, 20-11-2008 | #33 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Доброго времени суток всем присутствующим.
Кто-нибудь может помочь с такой проблемкой: Есть две книги file1 и file2, каждая с двумя столбцами, первый из которых это идентификатор, второй - значения; вобщем надо значения из первой книги переместить во вторую (при совпадении ячеек из первого столбца). Я использовал следующий макрос, но работает он крайне медлено при большом количестве строк(понятно, при прямом переборе то). Вообщем, как можно более эффективно и быстрее это сделать? i = 1 While Workbooks(file2).Worksheets("List").Cells(i, 1).Value <> "" current = Workbooks(file2).Worksheets("List").Cells(i, 1).Value j = 1 flag = False Do While Workbooks(file1).Worksheets("List").Cells(j, 1).Value <> "" If Workbooks(file1).Worksheets("List").Cells(j, 1).Value = current Then flag = True Exit Do End If j = j + 1 Loop If flag = True Then Workbooks(file2).Worksheets("List").Cells(i, 2).Value = Workbooks(file1).Worksheets("List").Cells(j, 2).Value Workbooks(file2).Worksheets("List").Cells(i, 2).Interior.Color = RGB(0, 255, 0) End If i = i + 1 Wend |
Последний раз редактировалось Aizec, 23-11-2008 в 16:47. Отправлено: 14:48, 23-11-2008 | #34 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Aizec, ВПР?
|
------- Отправлено: 14:53, 23-11-2008 | #35 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Strange_V:
|
|
Отправлено: 15:23, 23-11-2008 | #36 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать ВПР - это функция, точно не помню работает ли она с разными книгами, но думаю да.
|
------- Отправлено: 15:37, 23-11-2008 | #37 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Strange_V Спасибо, но это не подходит - я ведь не знаю содержимого ячеек.
|
Отправлено: 16:33, 23-11-2008 | #38 |
Старожил Сообщения: 369
|
Профиль | Отправить PM | Цитировать Если Вы не знаете содержимое ячеек, значит Вы не можете знать сколько раз может совпасть идентификатор из первого файла с перебираемыми идентификаторами во втором файле (если только идентификатор - это не числа по порядку). А у вас как только они совпадают (i,1).value = (j,1).value - происхлдит выход из цикла переборки и берётся следующий идентификатор из первого файла (i,1).
Кроме того у вас каждый раз при "exit Do" - рушится цикл переборки хотя текущий его счётчик "j" запоминается и далее уже при i = i+1 - снова создается новый Do ...Loop c запомненным "j", плюс ещё каждый раз происходит сравнение с "непустым" значением - проверка на конец списка. Попробуйте вот так: S1=Workbooks(file2).Worksheets("List").Cells(1, 1).currentregion.rows.count S2=Workbooks(file1).Worksheets("List").Cells(1, 1).currentregion.rows.count for x=1 to S1 idn1=Workbooks(file1).Worksheets("List").Cells(x, 1).value for y=1 to S2 idn2=Workbooks(file2).Worksheets("List").Cells(y, 1). if idn1=idn2 then zn1=Workbooks(file1).Worksheets("List").Cells(x, 2).value Workbooks(file2).Worksheets("List").Cells(y, 2).value=zn1 Workbooks(file2).Worksheets("List").Cells(i, 2).Interior.Color = RGB(0, 255, 0 end if next y next x |
Отправлено: 21:33, 23-11-2008 | #39 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать azbest Спасибо.
И у меня еще один вопрос возник: как импортировать в Excel не весь текстовый файл, а только текст заключенный в кавычки ""? Потом его еще надо будет после перевода обратно вставить. |
Последний раз редактировалось Aizec, 28-11-2008 в 18:44. Отправлено: 15:28, 24-11-2008 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|