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

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

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

Author24 — интернет-сервис помощи студентам
Здравствуйте!!!!!
Помогите! Плиз!!!
КАК С ПОМОЩЬЮ МАКРОСА СКОПИРОВАТЬ "БЛОКИ" СОГЛАСНО СПИСКА или КАК ВЫДЕЛИТЬ СОГЛАСНО СПИСКА ДАННЫЕ ДЛЯ КОПИРОВАНИЯ?
Вложения
Тип файла: 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...

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

11
2747 / 1721 / 779
Регистрация: 23.03.2015
Сообщений: 5,440
29.01.2019, 23:20 2
artofnewman,
у Вас пустой файл.
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.01.2019, 06:00 3
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  [ТС] 4
Прошу прощения!!!
Вот Файл
Вложения
Тип файла: xlsx Пример.xlsx (11.4 Кб, 7 просмотров)
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.01.2019, 07:36 5
artofnewman, в списке у вас порядок 1, 5, 4, а на листе Результат порядок 1, 4, 5. Так как надо - по старшинству или в указанном порядке?

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

Уточнее
Вкладка "список" блоков
1
4
5
Вкладка "результат"
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
5
5
5
5
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.01.2019, 11:30 7
Лучший ответ Сообщение было отмечено 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  [ТС] 8
Здравствуйте!
Спасибо! Вы гений!
Только вот на "Range("A3:H" & LastRow).Select" находящейся в "Sub Sorty() 'макрос сортировки записан рекодером" остановился процесс.

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

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

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

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

Подскажите только, если список начинается не с 1 и в "списке блоков" указаны блоки, которые нужно найти в "Данных" и перенести в "Результат", что нужно и как подправить,
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.01.2019, 16:49 9
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  [ТС] 10
Здравствуйте!
Проблема почему-то состоит в том, что если у нас в "Списке" значение не 1 то он не хочет в "Результат" вставить один блок например №5 или №7.
Т.е. у есть Данные 1,2,3,4,5,6,7 и тд, а есть Список в котором указано 3 и 7, и в Результат надо вставить Блоки соответствующие списку (№3 и №7).
Если не затруднит помогите ((
0
1846 / 1161 / 354
Регистрация: 11.07.2014
Сообщений: 4,105
30.01.2019, 20:50 11
Лучший ответ Сообщение было отмечено 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  [ТС] 12
Здравствуйте!!!!!
Спасибо Вам за потраченное время!!!
Чтоб удача была с вами и здоровья!
0
01.02.2019, 14:31
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2019, 14:31
Помогаю со студенческими работами здесь

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

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

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

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

Перенести числа согласно условию
Чила в файле целые и не равняються нулю Нужно перенести числа с одно файла в другой :1)Чтобы...

Перенести блоки с левой стороны в правую
Доброй ночи! Помогите пожалуйста перенести блоки с левой стороны в правую Все подобные темы я...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru