|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
Проблема с копированием ячеек24.05.2010, 17:32. Показов 2105. Ответов 11
Метки нет (Все метки)
задача следующая.
есть файл (book1), например такой структуры: A B C .... 1 25 2 23 3 4 21 . 45 . 67 . 34 . . и ещё один файл (book2), вот такой: A B C 1 12 1 2 13 2 3 24 3 . 23 5 . 25 8 . 21 9 34 7 45 12 67 01 . . . (в ячейках не обязателно числа, это так, для примера, есть просто пустые ячейки) задача: копируем ячейку А1(book1)(А1=25), ищем в book2 ячейку идентичную А1(book1)(это будет А5), смещение на 1 ячейку влево (это будет В5), копирование содеожимого В5, возврат в book1 в ячеку В1 вставляем содеожимое В5. И так далее...., в результате book1 должна принять вид: A B C .... 1 25 8 2 23 5 3 4 21 9 . 45 12 . 67 01 . 34 7 . написал вот это (цикла пока нет):
0
|
||||||
| 24.05.2010, 17:32 | |
|
Ответы с готовыми решениями:
11
Проблема с копированием на ФТП Перенос данных из Excel или таблицы Word в DataGridView простым копированием ячеек
|
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
||||||
| 24.05.2010, 20:15 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
| 25.05.2010, 12:04 [ТС] | ||||||
|
спасибо, работает, но до первой пустой ячейки, как только в бук1 встречаеться пустая ячейка - работа завершаеться.
я сделал вот так:
это в цикл, сделать проверку на пустые ячейки (если пусто, то сдвиг на 1 вниз....и. так далее до следующего значения, если это значение...ну скажем 'end' - то завершить)
0
|
||||||
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
| 25.05.2010, 12:07 [ТС] | |
|
vlth у тебя красивей
, ещё раз спасибо, я VBA начал рюхать только вчера утром
0
|
|
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
| 25.05.2010, 13:33 | |
|
<как только в бук1 встречаеться пустая ячейка - работа завершаеться>
Так и было предусмотрено (исходя из условий задачи): Set MyRange1 = ThisWorkbook.Worksheets(1).Cells(1, 1).CurrentRegion (определили диапазон со значениями, присвоили объектной переменной ссылку на этот диапазон) lngRows1 = MyRange1.Rows.Count (подсчитали кол-во строк в диапазоне - т.е. от 'A1' вниз по столбцу до первой пустой ячейки)
0
|
|
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
| 25.05.2010, 14:47 [ТС] | ||||||
|
это я понял, а как сделать так, что если ячейка пуста то вниз на одну и так далее, пока не будет со значением?
ещё, если в ячейке бук1 будет значение, которого нет в бук2, то при поиске выдаст ошибку и остановиться, а как сделать так, что бы в бук1 эта ячейка пометилась например красным и дальше продолжилось. сегодня ещё посидел, доработал немного свой, но что-то тоже не очень...вот что получилось (коряво, но пока только так):
0
|
||||||
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|||||||||||
| 25.05.2010, 15:31 | |||||||||||
|
<как сделать так, что бы в бук1 эта ячейка пометилась например красным и дальше продолжилось>
Внося изменения в код, чтобы продемонстрировать ответ, увидел у себя опечатку: конечно же MyRange2 - это ПЕРВЫЙ столбец диапазона CurrentRegion. В остальном всё без изменений.
Для пропуска пустых ячеек можно использовать цикл Do-While со счётчиком строк. Например:
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
| 25.05.2010, 17:24 [ТС] | ||||||
|
написал вот это, не обрабатываеться ошибка..почему не пойму, помогите найти
0
|
||||||
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
| 25.05.2010, 17:26 [ТС] | |
|
выдаёт ошибку Object variable or With block variable not set (Error 91)
0
|
|
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
| 26.05.2010, 13:20 | |
|
<Посмотрите, плиз, что не так, подскажите как правильно...>
Неправильно вместо управляющих структур For - Next, Do - Loop, For Each - Next, т.е. операторов условного перехода, использовать GoTo - оператор безусловного перехода.
0
|
|
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
| 26.05.2010, 13:56 [ТС] | |
|
я бы сказал....некарсиво, но не неправильно. Согласен, что переделать бы неплохо
.выяснил причину возникновения ошибки, если первого значения из бук1 нет в бук2, то вываливает ошибку (например а1=12, а в бук2 нет ячейки с таким значением), если же первое в бук1 есть в бук2 то всё ок, дальше работает нормально. Почему так - не пойму.
0
|
|
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
| 26.05.2010, 14:32 | |
|
Неоправданное применение GoTo - признак дурного тона в программировании.
Это общепринятое мнение: код с GoTo трудночитаем и воспринимаем. Если хочешь, чтобы с твоим кодом работали другие люди, прислушайся к совету - максимально сократи кол-во GoTo. Кстати, 'другим' программистом можешь стать ты сам, попытавшись разобраться в своём проекте через какое-то время.
0
|
|
| 26.05.2010, 14:32 | |
|
Помогаю со студенческими работами здесь
12
проблема с копированием файлов на xubuntu Проблема с копированием поля Body
Проблема с копированием базы на другой сервер делаю БД копированием из другой. Проблема с высвечиваемым названием. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|