2017-02-16 9 views
-2

У меня есть файл excel с двумя столбцами. Excel скриншот ниже:Excel VBA: копировать и вставлять повторяющиеся значения из другой ячейки

enter image description here

То, что я хочу, это Excel VBA, которая будет читать все повторяющиеся значения, и если клетка рядом с ней пустым, значение из другого дубликата счета будет вставлен в пустую ячейку. Ожидаемый результат:

enter image description here

Я не очень хорошо с Excel VBA, так что я действительно ценю вашу помощь.

Спасибо!

ответ

1

Отправной точкой является цикл по каждому значению и сравнить его с каждым значением в столбце:

Sub FillDuplicates() 
Dim lastrow As Long 

lastrow = Cells(Rows.Count, "A").End(xlUp).Row 'find last row in column A 

For x = 1 To lastrow 
    If Cells(x, 2).Value <> "" Then 'Check if cell in column B is empty 
     For y = 1 To lastrow 
      If Cells(y, 1).Value = Cells(x, 1).Value Then 'Compares cell against each value in column A 
       Cells(y, 2).Value = Cells(x, 2).Value 'If matches, add value in column B 
      End If 
     Next y 
    End If 
Next x 

End Sub 
+0

Привет, Пит VBA. Это сработало. Большое спасибо! – user3445540

+0

no беспокойство @ пользователь3445540 –

1

Вы могли бы попробовать это

Sub Main() 
    With Columns(1).SpecialCells(xlCellTypeConstants, XlTextValues).Offset(,1).SpecialCells(xlCellTypeBlanks) 
     .FormulaR1C1 = "=R[-1]C" 
     .Value = .Value 
    End With 
End Sub 

Где

  • 1st SpecialCells выбирает ячейки столбца A с некоторым текстовым значением

  • Смещение выбирает соответствующие им ячейки в следующем столбце справа (т.е. столбец B)

  • 2-го SpecialCells выбирает пустые ячейки в этом последнем диапазоне

+0

Hi, @ пользователь3598756. Ваш код также работал. Большое спасибо! – user3445540

+0

Добро пожаловать. Вы можете принять ответ с кодом, который вы выбрали. – user3598756

+0

@ user3445540, пожалуйста, вознаградите, приняв ответ, который вы фактически решили использовать в своем коде – user3598756