Перенести по условию - VBA (48687)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Имеется excel файл, напечатанного ниже формата:Лист "Исходник": Столбец "А" - код товара;Лист "Товар": Столбец "K" - код товара; Все остальные столбцы, помимо столбца K - информация о товаре; Напишите пожалуйста макрос, который перенесёт строки с листа "Товар", - код товара которых совпадает с данными в ячейках: Лист "Исходник", Столбец "А" = Лист "Товар", Столбец "K" Пример содержания ячеек с кодом товара: 12414 12 18924 1441 На листе "Товар" заполнено около 50 тыс. строк; Могут быть пустые ячейки на листе "Товар", столбец "K" - их пропускать; Прикрепляю пример файла во вложении.

Решение задачи: «Перенести по условию»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Sub tt()
  4.     Dim a, i&, t$
  5.  
  6.     With CreateObject("scripting.dictionary"): .comparemode = 1
  7.         a = Sheets(1).UsedRange.Columns(1).Value
  8.         For i = 1 To UBound(a)
  9.             .Item(Trim(a(i, 1))) = i
  10.         Next
  11.        
  12.         a = Sheets(2).UsedRange.Columns(11).Value
  13.         For i = UBound(a) To 1 Step -1
  14.             t = Trim(a(i, 1))
  15.             If .exists(t) Then Sheets(2).Rows(i).Copy Sheets(1).Cells(.Item(t), 1): Sheets(2).Rows(i).Delete
  16.         Next
  17.  
  18.     End With
  19.  
  20. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы