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

Копирование данных с одного листа в таблицу на другом листе

09.01.2020, 08:58. Показов 6480. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Напишите пожалуйста код, как все данные из Лист2 колонки B9 скопировать на другой лист1 в умную таблицу, не могу разобраться, с моими вариантами копируется только одна строка из колонки B строки 9, а нужно чтоб полностью всё содержимое колонки, начиная с 9 строки и до последней заполненной копировалось.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.01.2020, 08:58
Ответы с готовыми решениями:

Копирование некоторых ячеек с одного листа в первую пустую строку на другом листе
Добрый день! У меня такая задача, есть лист Anketa и лист MB. Лист Anketa это анкета для заполнения, состоит из множества заполняемых...

Отображение части данных одного листа на другом
Здравствуйте! У меня вопрос: есть две страницы "Лист1" - пустая, и "Лист2" - с данными. Можно ли сделать в "Лист1" ссылку на...

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

53
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
09.01.2020, 09:11
Visual Basic
1
Range("B9:B" & Cells(Rows.Count, 2).End(xlUp).Row).Copy Sheets("Дист2").Cells(2, 1)
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 10:20  [ТС]
yutrans, ваш код не работает(

Вот, при нажатии на кнопку Перенос, нужно перенести на лист1 всё что в колонке D и начинается с 9 строки, в моем случае, переносится только одна строка.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Переноc()
 
Dim ShGeneral As Worksheet
Dim ListObj As ListObject
Dim ListRow As ListRow
 
Set ShGeneral = ThisWorkbook.Worksheets("Sheet1")
Set ListObj = ShGeneral.ListObjects("tb_данные")
 
Set ListRow = ListObj.ListRows.Add
'
ListRow.Range(2) = Range("D9")
 
End Sub
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 10:26  [ТС]
Файлик
test.zip
0
224 / 135 / 45
Регистрация: 08.09.2012
Сообщений: 283
Записей в блоге: 1
09.01.2020, 10:38
Попробуйте:
Visual Basic
1
2
3
4
5
Sub Переноc1()
    Dim ShGeneral As Worksheet
    Set ShGeneral = ThisWorkbook.Worksheets("Sheet1")
    Worksheets("Sheet2").Range("D9:D" & Cells(Rows.Count, 2).End(xlDown).Row).Copy ShGeneral.Cells(2, 2)
End Sub
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 11:03  [ТС]
aequit, Ваш код мне умную таблицу заполнил пустыми строками.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
09.01.2020, 11:46
root2,

Попробуйте для вашего файла...
Visual Basic
1
2
3
4
5
6
7
8
9
Sub MMM()
With Sheets("Sheet2")
    LR = .Cells(Rows.Count, 4).End(xlUp).Row
    ARR = Range(.Cells(9, 4), .Cells(LR, 4)).Value
End With
With Sheets("Sheet1")
 .Cells(2, 2).Resize(UBound(ARR)).Value = ARR
End With
End Sub
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 12:01  [ТС]
Narimanych, работает, правда только в начале таблицы, в первых строках, а необходимо заполнение)
0
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
09.01.2020, 12:09
root2,я умными таблицами не пользуюсь поэтому сбросил код для обычной. Код рабочий. У себя протестировал.
Файл нужно сразу сбрасывать.
Удачи в работе с умными таблицами
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 12:18  [ТС]
yutrans, Торопился, поэтому файл не было времени подготовить, постараюсь в предь скидывать файл, про файл я понял когда вы ответили, что без файла никак, уже не знаю что и делать, и так и этак, не хочет наполнять таблицу(
0
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
09.01.2020, 12:23
сделайте все без умных таблиц.
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 12:37  [ТС]
yutrans, К сожалению без умных таблиц много ручками делать придется (

Добавлено через 1 минуту
У Narimanych, всё хорошо, только не наполняется таблица если вызывать код несколько раз.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
09.01.2020, 12:50
Цитата Сообщение от root2 Посмотреть сообщение
только не наполняется таблица если вызывать код несколько раз
Непонятно.
Опишите подробней...
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 13:16  [ТС]
Narimanych, В таблицу заносятся данные только один раз, все последующие запуски макроса, обновляют данные и добавляется пустая строка.

наполните таблицу данными, потом запустите ваш макрос, ваши данные удалятся в начале и подставятся те что на втором листе + новая строчка пустая, а нужно эти данные не обновлять, а заносить в таблицу столько раз, сколько был запущен макрос.

Добавлено через 10 минут
Narimanych, Извиняюсь, новую строку не ваш код создавал,
Ваш код заносит данные в таблицу один раз и всё, а нужно её наполнять, столько раз, сколько запущен макрос.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
09.01.2020, 13:17
Цитата Сообщение от root2 Посмотреть сообщение
, а нужно эти данные не обновлять, а заносить в таблицу столько раз, сколько был запущен макрос.

Вот с этого и надо было....

Так?
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub MMM()
With Sheets("Sheet2")
    LR1 = .Cells(Rows.Count, 4).End(xlUp).Row
    ARR = Range(.Cells(9, 4), .Cells(LR1, 4)).Value
End With
With Sheets("Sheet1")
 LR2 = .Cells(Rows.Count, 2).End(xlUp).Row + 1
 .Cells(LR2, 2).Resize(UBound(ARR)).Value = ARR
End With
End Sub
1
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 13:58  [ТС]
Narimanych, Спасибо, это то что нужно.

Добавлено через 14 минут
Narimanych,
Есть маленький нюанс, я заполняю таблицу, а вот то что произошло заполнение, другой мой код который подставляет дату это не увидел, то есть мне нужно активировать ячейку, нажать энтер, только тогда другой код реагирует и дата подставляется.

Добавлено через 21 минуту
Narimanych, помогите решить пожалуйста.
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
09.01.2020, 14:01
root2,

1) В задании про другой код ничего не говорилось
2) В прикрепленном файле "другой код" отсутствует
3) Привяжите "другой" код к "этому"


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub MMM()
With Sheets("Sheet2")
    LR1 = .Cells(Rows.Count, 4).End(xlUp).Row
    ARR = Range(.Cells(9, 4), .Cells(LR1, 4)).Value
End With
With Sheets("Sheet1")
 LR2 = .Cells(Rows.Count, 2).End(xlUp).Row + 1
 .Cells(LR2, 2).Resize(UBound(ARR)).Value = ARR
End With
 
Call ABCD '     ABCD- название макроса "другого"  кода
End Sub
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 14:08  [ТС]
Narimanych, Для эксперимента, попробовал применить этот код

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Ìàêðîñ1()
Dim ShGeneral As Worksheet
Dim ListObj As ListObject
Dim ListRow As ListRow
 
Set ShGeneral = ThisWorkbook.Worksheets("Лист1")
Set ListObj = ShGeneral.ListObjects("tb_Данные")
 
Set ListRow = ListObj.ListRows.Add
'
ListRow.Range(2).Value = "das"
 
End Sub
СЛОВО "DAS" Добавилось и рядом поставилась дата автоматически, другой код изменения увидел, с вашим кодом пока не видит(

Добавлено через 4 минуты
Narimanych,
Сall не видит, код на листе

Работает только когда происходят изменения.
Private Sub Worksheet_Change(ByVal Target As Range)


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
'   nothing to do if the number of changed cells doesn't equal to one
    If Target.Cells.Count > 1 Then
        Exit Sub
    End If
        
'   if the good name has changed, let's set date, quantity and price
    If Not Intersect(Target, Range("B3:B65530")) Is Nothing Then
    '   setting date column
    With Target
        If .Count > 1 Then Exit Sub
        If Intersect(.Cells, Columns(2)) Is Nothing Then Exit Sub
        If Not IsDate(Cells(.Row, 1)) Then Cells(.Row, 1).Value = Date
        If IsEmpty(.Cells) Then Cells(.Row, 1).ClearContents
    End With
0
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
09.01.2020, 14:18
root2,

Прикрепите свой файл...
0
1 / 1 / 0
Регистрация: 17.07.2011
Сообщений: 82
09.01.2020, 14:34  [ТС]
Narimanych, test2.zip
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2020, 14:34
Помогаю со студенческими работами здесь

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

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

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

Копирование данных с одного листа на другой
Добрый день. Есть такая проблемка. В данном коде появляется ошибка при вставке данных из одной книги в другую Method ‘Paste’ of object...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
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. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru