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

Переместить таблицу на другой лист

17.04.2015, 00:34. Показов 3376. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Помогите, пожалуйста, написать макрос, который
1. переносит данные из таблицы на Листе1 и вставляет их в конец таблицы перед итогом на Листе2 в столбцы E:F
2. добавляет в столбец В таблицы, текущую дату. На каждой строке.

Заранее благодарен!
Перенос табл.xls
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.04.2015, 00:34
Ответы с готовыми решениями:

Переброс данных на другой лист в таблицу
Доброго всем дня. Прочитав пару учебных курсов и сайт firststeps по VBA таки не понял. Задача: Необходимо перекинуть данные...

Как добавить данные из ячейки в таблицу на другой лист?
есть лист 1 ячейка А1 есть кнопка )) формы > кнопка нужно что бы при нажатии на нее из листа 1 ячейки А1 добавлялась запись в лист 2...

Переместить лист на конкретную позицию
Товарищи, добрый день у меня коротенький вопрос есть операции перемещения с листами: Sheets(h).Move Before:=Sheets(1) ...

9
3947 / 2340 / 790
Регистрация: 02.11.2012
Сообщений: 6,220
17.04.2015, 09:28
Цитата Сообщение от Aqua200 Посмотреть сообщение
переносит данные
Когда? по кнопке или по двойному клику по некой ячейке таблицы или ещё как?
Все данные или определенные?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
17.04.2015, 09:38
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub bb()
Sheets("Лист1").ListObjects(1).DataBodyRange.Copy
Sheets("Лист2").Select
Sheets("Лист2").ListObjects(1).TotalsRowRange.Cells(5).Select
ActiveSheet.Paste
With Selection.Columns(1).Offset(, -3)
  .Value = Date
  .NumberFormat = Range("B2").NumberFormat
End With
Sheets("Лист1").ListObjects(1).DataBodyRange.EntireRow.Delete
End Sub
Если не нужно очищать таблицу на Лист1, удалите/закомментируйте предпоследнюю строку.
1
0 / 0 / 0
Регистрация: 10.04.2015
Сообщений: 2
17.04.2015, 10:13  [ТС]
Vlad999, Все данные из первой таблице, по кнопке
Казанский, Спасибо большое! Работает) подскажите, пожалуйста, возможно это проделать без перехода на Лист2?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
17.04.2015, 10:51
Можно, но проще вернуться на прежний лист
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub bb()
Dim sh: Set sh = ActiveSheet 
Sheets("Лист1").ListObjects(1).DataBodyRange.Copy
Sheets("Лист2").Select
Sheets("Лист2").ListObjects(1).TotalsRowRange.Cells(5).Select
ActiveSheet.Paste
With Selection.Columns(1).Offset(, -3)
  .Value = Date
  .NumberFormat = Range("B2").NumberFormat
End With
Sheets("Лист1").ListObjects(1).DataBodyRange.EntireRow.Delete
sh.Activate
End Sub
0
0 / 0 / 0
Регистрация: 07.02.2025
Сообщений: 1
11.02.2025, 15:46
TotalsRowRange(5).Cells.Select - ставит курсор на строку итогов. Если переносить 2 и более строк, они, действительно, допишутся до строки итогов под основными данными (расширяя таблицу). Но если копируемый диапазон состоит только из одной строки, вставка значений происходит в ячейку строки итогов. Как избежать того, чтобы макрос не заполнял строку итогов при копировании одной строки?
0
933 / 366 / 43
Регистрация: 10.05.2021
Сообщений: 1,564
Записей в блоге: 10
11.02.2025, 16:39
Казанский, активации листов и выделения диапазонов — первое, от чего учат отказываться новичков.
Удивлён, что человек с вашим опытом показывает примеры такого кодинга.
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,330
11.02.2025, 19:33
Цитата Сообщение от Jack Famous Посмотреть сообщение
Удивлён, что человек с вашим опытом показывает примеры такого кодинга
так и писали бы 10 лет назад...
0
74 / 18 / 6
Регистрация: 18.01.2025
Сообщений: 83
16.02.2025, 14:07
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub Macros1 ()
 Dim ws1 As Worksheet, ws2 As Worksheet, lastRow As Long
    Set ws1 = ThisWorkbook.Sheets("Лист1")
    Set ws2 = ThisWorkbook.Sheets("Лист2")
    lastRow = ws2.Cells(ws2.Rows.Count, "E").End(xlUp).Row
    If ws2.Cells(lastRow, "E").Value = "Итог" Then lastRow = lastRow - 1
    ws1.Range("E2:F" & ws1.Cells(ws1.Rows.Count, "E").End(xlUp).Row).Copy
    ws2.Cells(lastRow + 1, "E").PasteSpecial xlPasteValues
    ws2.Range("B" & lastRow + 1 & ":B" & ws2.Cells(ws2.Rows.Count, "E").End(xlUp).Row).Value = Date
End Sub
0
Одесса - Украина
 Аватар для MikeVol
521 / 199 / 70
Регистрация: 01.04.2020
Сообщений: 615
18.02.2025, 23:17
Ещё как вариант не используя
Цитата Сообщение от Казанский Посмотреть сообщение
.Activate
и
Цитата Сообщение от Казанский Посмотреть сообщение
.Select
и используя
Цитата Сообщение от Казанский Посмотреть сообщение
.ListObjects
вместо поиска строки с
Цитата Сообщение от DeepSee Посмотреть сообщение
"Итог"
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
Option Explicit
 
Sub demoListObject()
    Dim targetRow   As ListRow
    Dim lastRow     As Range
    Dim i           As Long
 
    Dim tbl1        As ListObject
    Set tbl1 = ThisWorkbook.Worksheets("Лист1").ListObjects(1)
 
    Dim tbl2        As ListObject
    Set tbl2 = ThisWorkbook.Worksheets("Лист2").ListObjects(1)
 
    If tbl1.DataBodyRange Is Nothing Then Exit Sub
 
    If tbl1.DataBodyRange.Rows.Count = 1 Then
        Set targetRow = tbl2.ListRows.Add
        Set lastRow = targetRow.Range
        lastRow.Cells(1, 5).Resize(1, 2).Value = tbl1.DataBodyRange.Value
        lastRow.Cells(1, 2).Value = Date
    Else
 
        For i = 1 To tbl1.DataBodyRange.Rows.Count
            Set targetRow = tbl2.ListRows.Add
            Set lastRow = targetRow.Range
            lastRow.Cells(1, 5).Resize(1, 2).Value = tbl1.DataBodyRange.Rows(i).Value
            lastRow.Cells(1, 2).Value = Date
        Next i
 
        Set lastRow = Nothing
        Set targetRow = Nothing
    End If
 
    Set tbl2 = Nothing
    Set tbl1 = Nothing
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2025, 23:17
Помогаю со студенческими работами здесь

Сравнение столбцов, при совпадении переместить столбцы на новый лист
Помогите решить. Есть 1 столбец с числовыми данными, есть 2 столбец с такими же числовыми данными, и есть еще 5 столбцов просто с...

Перенос данных с одного листа одной книги на другой лист другой книги с константой
Добрый вечер, товарищи! Есть прайс-лист, который содержит в себе много колонок и строк. На ежедневной основе мне приходится распределять...

Запретить "переместить/скопировать" лист
Здравствуйте, можно ли макросом запретить команду "переместить/скопировать" лист, которая вызывается нажатием правой кнопки на...

Копирование строк в другой лист
Всем привет. Просьба помочь с задачей: В документе есть 12 листов (кол-во месяцев в году). Необходимо сделать так, что бы при...

Перенос данных на другой лист
Доброго времени суток. Есть таблица состоящая из двух столбцов: "Фамилия ученика" и "Класс". Необходимо учеников старше 5...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru