我有一个包含两列的excel文件。 下面的Excel截图:
我想要的是一个Excel VBA,它将读取所有重复值,如果它旁边的单元格为空白,则另一个重复帐户的值将粘贴在空白单元格中。 预期结果:
我对Excel VBA不太满意,所以我非常感谢您的帮助。
谢谢!
答案 0 :(得分:3)
你可以试试这个
Sub Main()
With Columns(1).SpecialCells(xlCellTypeConstants, XlTextValues).Offset(,1).SpecialCells(xlCellTypeBlanks)
.FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With
End Sub
其中
第一个SpecialCells选择具有一些文本值的列A单元格
偏移量在右下一列中选择相应的单元格(即B列)
第二个SpecialCells选择后一个范围内的空单元
答案 1 :(得分:2)
一个起点是遍历每个值并将其与列中的每个值进行比较:
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