Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 141

Как спрятать визуальное перемещение по листам при переносе данных?

06.03.2011, 14:00. Показов 2423. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
переношу данные с Лист2 на Лист1, работаю на Лист1 и возвращаюсь на Лист2
все эти переходы пользователь видит на экране
Можно сделать так, чтобы все это происходило, но пользователь все время видел только Лист2?
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2011, 14:00
Ответы с готовыми решениями:

Как скрыть перемещение по листам?
Есть две книги, копирую данные из одной в другую. Происходит "мелькание" листов, т.к. перед копированием и вставкой областей активируются...

Как присвоить дату при переносе данных из одной таблице в другую
Как присвоить дату при переносе данных из одной таблице в другую. запросом Добавлено через 46 секунд чтобы дата сама заполнялась

При переносе данных о дате(дд.мм.гг.) из datagridview в Word после дд.мм.гг. выводится 0:00:00 Как это исправить?
В Word данные переправляю с помощью метода: private void ReplaceWordStub(string stubToReplace, string text, Word.Document wordDocument) ...

7
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
06.03.2011, 14:49
Очень просто. Не активизируй Лист 1. А вместо активного листа в инструкциях указывай нужный лист явно по имени или подписи. Желаю успехов.
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
06.03.2011, 16:13
To mmos

Не всё так уж и просто, например эта инструкция работать не должна :
Visual Basic
1
2
Worksheets(1).Select: iStr = 'zurbanigast'
Worksheets(2).Range(Cells(1, 1), Cells(2, 2)) = iStr
Так что если даёте советы, то подкрепляйте свои слово делом, т.е. кодом. И что это за новый термин - подпись листа ???

To kostic

Отключение обновление экрана во время выполнения макроса ещё никто не отменял, так что этим можно воспользоваться:
Visual Basic
1
2
3
Application.ScreenUpdating = False
'здесь Ваш код
Application.ScreenUpdating = True
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 141
07.03.2011, 08:12  [ТС]
спасибо за помощь, ограничил свой код Application.ScreenUpdating = False/true и получил что хотел
0
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 141
07.03.2011, 08:15  [ТС]
кстати
Sheets('Лист1').Range('b:b').Clear - срабатывает
а вот
Sheets('Лист1').Range('B1').Select - дает ошибку ???????????
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
07.03.2011, 10:37
Если Вам нужно перенести только данные (без форматирования), то “прыгать” с одного листа на другой не лучшая идея. Т.е. несмотря на то, что mmo не указал на возможные ошибки связанные с переносом данных из одного листа в другой, идею он Вам подсказал правильную ...
0
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
07.03.2011, 12:25
Пашульке спасибо на добром слове.

А вообще проблем с переносом данных и форматов с одного листа на другой не бывает, если делать всё правильно. Пара советов (почти на все случаи жизни):
1) Select следует забыть и никогда не вспоминать (я серьёзно);
2) при записи данных и формата в новую ячейку сначала стоит записать формат (особенно те характеристики, которые отвечают за внешний вид чисел);
3) к одной ячейке следует обращаться Cells(Row, Col).

Что касается замечания о подтверждении слов делом (кодом), то я согласен, но для этого требуется лучшее понимание задачи, чем обычно можно получить по формулировке вопроса. Давайте конкретные вопросы - получите конкретный код. Желаю успехов.
0
 Аватар для pashulka
4139 / 2243 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
07.03.2011, 14:35
Позволю высказать свои личные наблюдения, которые никоим образом не являются дополнением, комментариями или критикой предыдущего оратора ( mmos ) т.е. это просто взгляд другого человека на одни и теже вопросы, но с разных ракурсов зрения.

- Если всё делать правильно то проблем не должно возникать при решении любого вопроса
- Перенос данных с одного листа на другой вовсе не такая простая тема, как полагают некоторые, даже технически грамотные маньяки VBA совершают ошибки, так как некоторые инструкции в этом случае не работают, например :

Активным является 'Лист1'
Visual Basic
1
2
iData = Worksheets(1).Cells(1, 1)
Worksheets(2).Range(Cells(1, 1), Cells(10, 10)) = iData
Вот это работать не должно, хотя в обычной ситуации это правильный код !!!

- Что касается Select, то наверно имеется ввиду, что нужно отказаться от подобного кода :
Visual Basic
1
2
Range('C5').Select
ActiveCell.FormulaR1C1 = 'mutata'
Потому что в принципе забывать Select нельзя, об'ясню почему. Например имеется некая таблица с данными и нам надо произвести некие манипуляции с диапазоном ячеек, причём диапазон будет определяться визуально, т.е. не будет иметь чёткого адреса. В таком случае Selection просто незаменим, например :
Visual Basic
1
2
3
For Each iCell in Selection
...
Next
Или другой вариант, нам после некоторых изменений необходимо пред'явить пользователю рабочий лист с новыми данными. В таком случае без Select или Activate нам будет это сделать крайне затруднительно (причём Activate более предпочтительней)

- Что касается предоставления кода, то здесь для понимания того, что я хотел сказать необходимо об'единить высказывания из обоих моих ответов. В результате об'единения мы получим, что желательно либо пред'явить 99% работающий код (при любых условиях), либо указать на возможные 'подводные камни' связанные с тем или иным советом. В таком случае можно указать какой именно код работать не будет, т.е. то что сделал я (уже два раза)

- Если я что-то помню из школьных предметов, то пара советов, это совет 1 и совет 2 ... и только
Хотя со времени окончания школы очень много чего произошло, возможно я просто безнадёжно отстал от жизни.

- правило математики, гласящее, что от перемены мест слагаемых сумма не меняется, работает и при изменении формата ячеек, т.е. можно сначала установить формат ячеек стандартными средствами, а затем ввести данные, но можно и наоборот.

- насчёт того чтобы обращаться к одной ячейке используя только Cells(r, c)
Если ячейка является константой, то обращение к об'екту Range будет проще и понятнее, например :

Cells(256, 14) а теперь назовите адрес ячейки ... вот вот

А использовать вот такой код - [A1] это право каждого человека, данное нам Богом и программистами Microsoft.

С наилучшими пожеланиями и поздравлениями с наступающим праздником.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.03.2011, 14:35
Помогаю со студенческими работами здесь

При переносе данных из datagridview в Excel, ячейки, в которые не влезают данные, заполняются решетками. Как исправить?
Всем добрый день. Из заголовка, мне кажется, всё и так понятно. Как можно это по-другому оформить? И да, может кто объяснить по примеру,...

Ошибка при подключении к SQL базе данных при переносе программы
Я добавил базу данных SQL "*.mdf" к проекту. Если использовать параметры строки подключения типа: "Data...

Удаление дублирующихся данных при переносе
Добрый день! Нужна помощь в следующем вопросе. Есть таблица с определенным набором столбцов (дата,процедура,Региональный центр, Доп...

Облом при переносе базы данных
Здравствуйте. Прошу помощи. При переносе базы данных MySQL выдал следующее: Ошибка Вероятно, SQL-запрос содержит ошибку. При наличии...

Ошибка при переносе данных в массив
Здравствуйте. Проблема с StudentsAverageMark. Для примера были созданы только 3 студента, но, возможно, понадобится больше, поэтому создан...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru