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

Перенести (скопировать) согласно списка "блоки" (пронумерованные строки)

29.01.2019, 23:02. Показов 2301. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!!!!!
Помогите! Плиз!!!
КАК С ПОМОЩЬЮ МАКРОСА СКОПИРОВАТЬ "БЛОКИ" СОГЛАСНО СПИСКА или КАК ВЫДЕЛИТЬ СОГЛАСНО СПИСКА ДАННЫЕ ДЛЯ КОПИРОВАНИЯ?
Вложения
Тип файла: xlsx Пример.xlsx (6.4 Кб, 5 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2019, 23:02
Ответы с готовыми решениями:

Как скопировать согласно списка "блоки" и вставить
Здравствуйте!!!! Помогите!!! Желаю всем фартуны море!! "Как скопировать согласно списка "блоки" и вставить." ...

Скопировать и конкатенировать (объединить) заданные строки согласно условию
Скопируйте строку А в строку В строку К в строку Т, объедините.

Как преобразовать пронумерованные строки?
Есть вот такие пронумерованные строки (номера строк могут быть разными): <p>1 Текст.</p> <p>74 Текст.</p> ...

11
 Аватар для Narimanych
2751 / 1725 / 779
Регистрация: 23.03.2015
Сообщений: 5,449
29.01.2019, 23:20
artofnewman,
у Вас пустой файл.
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
30.01.2019, 06:00
artofnewman, если у вас в каких-то ячейках листа хранится список блоков для копирования в виде D10:H17 (например в ячейке А1), то копируем и вставляем (пример)
Visual Basic
1
2
3
4
5
Sub proba()
Dim S As String
S = [a1]
Range(S).Copy Destination:=[a10]  'ячейка для вставки, которая вам нужна
End Sub
0
1 / 1 / 0
Регистрация: 22.07.2018
Сообщений: 80
30.01.2019, 07:00  [ТС]
Прошу прощения!!!
Вот Файл
Вложения
Тип файла: xlsx Пример.xlsx (11.4 Кб, 7 просмотров)
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
30.01.2019, 07:36
artofnewman, в списке у вас порядок 1, 5, 4, а на листе Результат порядок 1, 4, 5. Так как надо - по старшинству или в указанном порядке?

Добавлено через 10 минут
И ещё, можно ли сортировать ДАННЫЕ по первому столбцу?
0
1 / 1 / 0
Регистрация: 22.07.2018
Сообщений: 80
30.01.2019, 08:50  [ТС]
Здравствуйте!
Если есть возможность, то да по порядку (по старшенству)

Уточнее
Вкладка "список" блоков
1
4
5
Вкладка "результат"
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
5
5
5
5
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
30.01.2019, 11:30
Лучший ответ Сообщение было отмечено artofnewman как решение

Решение

artofnewman, вроде как надо, проверьте, если что сообщите. Список ставьте по возрастанию Запуск - макрос Bloks
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
Dim LastRow As Long
Sub Bloks()
Dim I As Long, J As Long, K As Integer, N As Integer, M As Long
Sheets("результат").Select
Columns("A:H").Delete 'зачищаем столбцы результата
Sheets("данные").Select
Range("A1:H2").Copy Destination:=Sheets("результат").[A1]
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Call Sorty
K = 2: I = 3: J = 2: M = 3
Do While Sheets("список").Cells(K, 1) <> ""
  N = Sheets("список").Cells(K, 1)
  If Cells(I, 1) = N Then
    If I > J Then J = I
    Do While Cells(J + 1, 1) = N
      J = J + 1
    Loop
    Range(Cells(I, 1), Cells(J, "H")).Copy Destination:=Sheets("результат").Cells(M, 1)
    M = J + 1: I = M
  End If
  K = K + 1
Loop
End Sub
Sub Sorty()
'макрос сортировки записан рекодером
    Range("A3:H" & LastRow).Select
    ActiveWorkbook.Worksheets("данные").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("данные").Sort.SortFields.Add Key:=Range( _
        "A3:A" & LastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("данные").Sort
        .SetRange Range("A2:H" & LastRow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
0
1 / 1 / 0
Регистрация: 22.07.2018
Сообщений: 80
30.01.2019, 13:31  [ТС]
Здравствуйте!
Спасибо! Вы гений!
Только вот на "Range("A3:H" & LastRow).Select" находящейся в "Sub Sorty() 'макрос сортировки записан рекодером" остановился процесс.

Добавлено через 4 минуты
Здравствуйте!

Выдал ошибку "method range of object _global failed".
Что-то ему не нравится (
Благодарю за помощь!

Добавлено через 1 час 27 минут
Спасибо!!!
Вы гений!!!!
Чтоб всегда на вашей стороне была удача и карма!!!

Всё работает!!

Подскажите только, если список начинается не с 1 и в "списке блоков" указаны блоки, которые нужно найти в "Данных" и перенести в "Результат", что нужно и как подправить,
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
30.01.2019, 16:49
artofnewman, а почему вы решили, что список должен начинаться с 1? C любого числа, только расположение по возрастанию напр. 3 5 7
А вот что с с Sorty? Я там подделывал кое-что без проверки, кажется. Уточните или проблема снята? Там же должна желтым высвечиваться строка с ошибкой

Добавлено через 6 минут
Если вы хотели запустить сортировку автономно, то тогда надо строку с LastRow (8) в неё засунуть, а перед этим Sheets(1).Select
0
1 / 1 / 0
Регистрация: 22.07.2018
Сообщений: 80
30.01.2019, 19:46  [ТС]
Здравствуйте!
Проблема почему-то состоит в том, что если у нас в "Списке" значение не 1 то он не хочет в "Результат" вставить один блок например №5 или №7.
Т.е. у есть Данные 1,2,3,4,5,6,7 и тд, а есть Список в котором указано 3 и 7, и в Результат надо вставить Блоки соответствующие списку (№3 и №7).
Если не затруднит помогите ((
0
1847 / 1162 / 354
Регистрация: 11.07.2014
Сообщений: 4,107
30.01.2019, 20:50
Лучший ответ Сообщение было отмечено artofnewman как решение

Решение

artofnewman, малость поспешил, моя вина посылаю макрос исправленный, притензии принимаются
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
Sub Bloks()
Dim I As Long, J As Long, K As Integer, N As Integer, M As Long
Sheets("результат").Select
Columns("A:H").Delete
Sheets("данные").Select
Range("A1:H2").Copy Destination:=Sheets("результат").[A1]
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Call Sorty
K = 2: I = 3: J = 2: M = 3
Do While Sheets("список").Cells(K, 1) <> ""
  N = Sheets("список").Cells(K, 1)
ToI:
  If Cells(I, 1) = N Then
    If I > J Then J = I
    Do While Cells(J + 1, 1) = N
      J = J + 1
    Loop
    Range(Cells(I, 1), Cells(J, "H")).Copy Destination:=Sheets("результат").Cells(M, 1)
    M = M + J - I + 1: I = J + 1
  Else
    I = I + 1: GoTo ToI
  End If
  K = K + 1
Loop
End Sub
Добавлено через 25 минут
artofnewman, Ещё одно уточнение для защиты от несоответствия списка и данных - замениете строку 21 из последнего варианта на
Visual Basic
1
   I = I + 1: If I > LastRow Then Exit Sub Else GoTo ToI
0
1 / 1 / 0
Регистрация: 22.07.2018
Сообщений: 80
01.02.2019, 14:31  [ТС]
Здравствуйте!!!!!
Спасибо Вам за потраченное время!!!
Чтоб удача была с вами и здоровья!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2019, 14:31
Помогаю со студенческими работами здесь

Вывести в файл пронумерованные строки исходного файла
вывести в файл output.txt все строки исходного файла, только пронумерованные, то есть перед каждой строкой стоит порядковый номер (начать...

Перебрать строки из списка файлов и скопировать их с созданием путей (папок)
Помогите пожалуйста доработать данный баш. Надо сделать скрипт, который будет записывать в эту же папку, где он сам. Инфу он будет брать из...

Расположить блоки согласно макету
Доброго времени суток! Не знаю, как нужно написать, чтобы элементы div стояли так, как на картинке. (блок, обведённый красным, должен...

Поиск чертежей согласно нумерованного (согласно порядка очереди) списка на листе "Данные" и копирование на лист
Здравствуйте! Кто сможет выполнить вроде как простую задачку и напишите стоимость плиз 1) на листе &quot;список&quot; пометил цветом...

Округление значений списка согласно разряду из второго списка
Добрый день. Есть список с данными, которые необходимо округлять согласно определенному правилу до определенного разряда. В соседней...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru