Excel VBA: копировать строки с одинаковым значением столбца - PullRequest
0 голосов
/ 23 ноября 2018

Цель: Я хочу вставить значение в [Col2] & [Числовой столбец] в качестве новой строки в шаблон для всех, где значение в [Col1] одинаково.Я также хочу использовать значение в [Col1] в одной ячейке.

Некоторая дополнительная информация: Столбец 1 - это идентификатор / копия для счета.Столбец 2 - это тип продукта, а Числовой столбец - это сумма в валюте.

У меня есть таблица:

Col1 Col2 Col3 Numeric Column 0001 Value B Ref1 100 0001 Value B Ref2 101 0001 Value C Ref3 99 0002 Value C Ref4 100 0002 Value B Ref5 101 0003 Value C Ref6 99 0004 Value B Ref7 100 0004 Value C Ref8 101

Я пытаюсь достичь:

Sub Example()
Dim n As Integer
Dim Source As Worksheet
Dim Target As Worksheet

Set Source = ActiveWorkbook.Worksheets("source")
Set Target = ActiveWorkbook.Worksheets("target")

For each n = 2 in Range([Col1]) 
  //Where the Values in Col1 are the same

  //Copy Value in Col 1 to Target Sheet in cell A1 {used only once}
  //Copy each value in Col1 - Col3 into row 2 and below for each value where Col 1 is same

Как установить переменную, которая будет продолжать что-то делать до тех пор, пока не исчерпаны те же значения в [Col 1], а затем перейти к следующему набору значений в [Col 1], не ссылаясь науникальные значения [col 1] в отдельной таблице / листе?

1 Ответ

0 голосов
/ 23 ноября 2018

Вам нужен словарь .Вам нужно что-то вроде:

 Dim dict As Scripting.Dictionary
 Set dict = New Scripting.Dictionary
 Dim i As Long
 With dict
     For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
         If Not dict.Exists(.Cells(i, 1).Value2) Then dict.Add .Cells(i, 1).Value2, i
     Next
 End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...