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

Копирование значения ячейки с одного листа и вставка в другой

14.02.2018, 16:21. Показов 1194. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Делаю дз по информатике, VBA. Задание заключается вот в чем: есть два листа в экселе - две таблицы в них. В первой, по вертикали находятся названия учебных предметов, по горизонтали - дни недели, в пересечениях - номера групп, у которых ведётся данный предмет в данный день.
На втором листа таблица такая же, но номера групп и предметов переставленны местами, то есть в пересечениях обозначаются названия предметов, которые ведутся у этой группы в этот день. Первый лист заполняется студентом, второй должен автоматически заполняться после запуска макроса.
Я написал такой код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Public Sub Macrosmain()
    Dim GroupNum, SbjName as string
 
    Call CellTakingAndPlacingCycle
    ' Циклы для перебора ячеек, где находятся названия предметов, и перебора ячеек, которые должны заполняться не сделан,
    ' да и проблема не в этом
End Sub
 
Private Sub CellTakingAndPlacingCycle()
    Sheets("N2").Select
    Range("C7").Select
 
    Call TakingGroupNum
    Call CheckingSbjNameInListOne
 
    Sheets("N2").Select
    Range("B7").Select ' C7 - это ячейка, в которую должен скопироваться предмет
    ActiveCell.Value = SbjName
End Sub
 
Private Sub TakingGroupNum
    Dim ColumnNum1 As Integer
    ColumnNum = ActiveCell.Column - 1
 
    ActiveCell.Offset(0, -ColumnNum1).Select
    GroupNum = ActiveCell.Value
End Sub
 
Private Sub CheckingSbjNameInListOne()
    Dim ColumnNum2 As Integer
    ColumnNum2 = ActiveCell.Column - 1
    
    Sheets("List1").Select
    Range("B7").Select ' Я заранее поставил в эту ячейку тот номер группы, что скопировался бы на второй  
    If ActiveCell.Value = GroupNum Then
        ActiveCell.Offset(0, -ColumnNum2).Select
        SbjName = ActiveCell.Value
    End If
End Sub
Проблема в том, что в ячейку не идёт копирование этого номера группы, туда вообще копируется пустое значение(то есть, если до макроса ячейка на втором листе заполнена, то после выполнения - пуста.
В чем может быть ошибка? В синтаксисе вроде нет ошибок, так как макрос выполняется. Может я не те методы использовал? Или алгоритм неверный? Буду очень благодарен, если подскажете, где тут косяк.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2018, 16:21
Ответы с готовыми решениями:

Копирование значения ячейки из одного листа в другой при соблюдений условии
Добрый день! Помогите написать макрос для решения следующей проблемы. Имеется таблица Excel, выгружаемый из одной программы. Таблица...

Копирование данных из ячейки одного листа на другой с условием
Копирование данных из ячейки одного листа на другой с условием На листе 1 в ячейках B4: ... ОТКАЗ - 306002 3 - 306000 1 - 306001...

Копирование данных из ячейки одного листа на другой перед тире
Скажите, необходимо скопировать из Листа1 ячееки F4: ... в лист 2 в ячейки I данные которые находятся перед тире Пример В...

2
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
14.02.2018, 17:14
Косяк в том ,что нет прилагаемого файла
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
14.02.2018, 18:20
Если после запуска - то я всегда такое на словаре делал, это проще чем циклы в циклах перебирать, или искать 2 раза.
Есть ещё вариант - делать по событию заполнения первой таблицы, если её заполняют вручную по одной ячейке. Но тут предвижу проблему с "очисткой поля"...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2018, 18:20
Помогаю со студенческими работами здесь

Обработка прайс листа для торговых площадок Копирование данных с одного листа на другой
Всем привет кто знает и может помогите Копирование данных с одного листа на другой обработка прайс листа для торговых площадок ...

Копирование с одного листа на другой
Здравствуйте! Помогите, пожалуйста, профану в программировании написать процедурку копирования с одного листа на другой. На одном листе...

Копирование данных с одного листа на другой
Доброго времени суток. Помогите, пожалуйста придумать макрос для копирования. Имеется два листа. Нужно создать макрос для копирования...

Копирование данных с одного листа на другой
У меня еще 2 небольших вопросика. 1) Скопировать лист с именем "list1" в пустой уже существующий лист ""list2" я...

Копирование данных с одного листа на другой
Народ у меня такая проблема то что мне надо создавать документ, и даннве с 1 листа должны копироваться на другом как мне проще слелать это...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через 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 На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru