0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
1 | ||||||
Проблема с копированием ячеек24.05.2010, 17:32. Показов 1975. Ответов 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 простым копированием ячеек Проблема с копированием в буфер обмена проблема с копированием файлов на xubuntu |
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
||||||
24.05.2010, 20:15 | 2 | |||||
0
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
25.05.2010, 12:04 [ТС] | 3 | |||||
спасибо, работает, но до первой пустой ячейки, как только в бук1 встречаеться пустая ячейка - работа завершаеться.
я сделал вот так:
это в цикл, сделать проверку на пустые ячейки (если пусто, то сдвиг на 1 вниз....и. так далее до следующего значения, если это значение...ну скажем 'end' - то завершить)
0
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
25.05.2010, 12:07 [ТС] | 4 |
vlth у тебя красивей , ещё раз спасибо, я VBA начал рюхать только вчера утром
0
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
25.05.2010, 13:33 | 5 |
<как только в бук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 [ТС] | 6 | |||||
это я понял, а как сделать так, что если ячейка пуста то вниз на одну и так далее, пока не будет со значением?
ещё, если в ячейке бук1 будет значение, которого нет в бук2, то при поиске выдаст ошибку и остановиться, а как сделать так, что бы в бук1 эта ячейка пометилась например красным и дальше продолжилось. сегодня ещё посидел, доработал немного свой, но что-то тоже не очень...вот что получилось (коряво, но пока только так):
0
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|||||||||||
25.05.2010, 15:31 | 7 | ||||||||||
<как сделать так, что бы в бук1 эта ячейка пометилась например красным и дальше продолжилось>
Внося изменения в код, чтобы продемонстрировать ответ, увидел у себя опечатку: конечно же MyRange2 - это ПЕРВЫЙ столбец диапазона CurrentRegion. В остальном всё без изменений.
Для пропуска пустых ячеек можно использовать цикл Do-While со счётчиком строк. Например:
0
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
||||||
25.05.2010, 17:24 [ТС] | 8 | |||||
написал вот это, не обрабатываеться ошибка..почему не пойму, помогите найти
0
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
25.05.2010, 17:26 [ТС] | 9 |
выдаёт ошибку Object variable or With block variable not set (Error 91)
0
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
26.05.2010, 13:20 | 10 |
<Посмотрите, плиз, что не так, подскажите как правильно...>
Неправильно вместо управляющих структур For - Next, Do - Loop, For Each - Next, т.е. операторов условного перехода, использовать GoTo - оператор безусловного перехода.
0
|
0 / 0 / 0
Регистрация: 24.05.2010
Сообщений: 7
|
|
26.05.2010, 13:56 [ТС] | 11 |
я бы сказал....некарсиво, но не неправильно. Согласен, что переделать бы неплохо .
выяснил причину возникновения ошибки, если первого значения из бук1 нет в бук2, то вываливает ошибку (например а1=12, а в бук2 нет ячейки с таким значением), если же первое в бук1 есть в бук2 то всё ок, дальше работает нормально. Почему так - не пойму.
0
|
14 / 14 / 2
Регистрация: 23.03.2010
Сообщений: 635
|
|
26.05.2010, 14:32 | 12 |
Неоправданное применение GoTo - признак дурного тона в программировании.
Это общепринятое мнение: код с GoTo трудночитаем и воспринимаем. Если хочешь, чтобы с твоим кодом работали другие люди, прислушайся к совету - максимально сократи кол-во GoTo. Кстати, 'другим' программистом можешь стать ты сам, попытавшись разобраться в своём проекте через какое-то время.
0
|
26.05.2010, 14:32 | |
26.05.2010, 14:32 | |
Помогаю со студенческими работами здесь
12
Проблема с копированием поля Body Проблема с копированием изображения в буфер обмена Проблема с копированием базы на другой сервер делаю БД копированием из другой. Проблема с высвечиваемым названием. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества
Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
|
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов.
. . .
|
С чего начать программировать микроконтроллеры
raxper 06.01.2025
Введение в мир микроконтроллеров
Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
|
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
|
Обновление сайта www.historian.by
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
|
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(асихронный счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|