我目前正在为电子表格做一些数据输入,其中包含数百个条目,并希望自动化该过程,我很清楚我想要它做什么,但对Excel或VBA几乎没有经验。
背后的想法是我在一列中有一个代码,在下一列中有另一个代码,它对前一列中的值是唯一的。举个例子:
因此,对于包含123的每个单元格,其旁边的列将是" ABC"。
我想要的解决方案是一个宏,它将沿着A列工作,存储每个单元格的值(或者某种效果),然后向下工作以检查与存储的值相匹配的值。如果找到匹配项,则宏将从列B(即存储的单元格旁边的单元格)中复制代码,并将其复制到匹配项旁边的列B中的单元格中。
实施例
它将存储" 123" A中的值,沿着A列向下找到其他匹配" 123"当它发现它们复制时#ABC; ABC"进入比赛旁边的B栏单元格。
希望这很容易理解,有人可以帮我提出一个解决方案,这将使整个过程变得更加容易,因为电子表格日益增长,手动输入需要很长时间
答案 0 :(得分:1)
尝试使用此宏:
Sub FillInTheBlanks()
Dim rA As Range
Dim rB As Range
Dim r As Range, rr As Range
Dim N As Long
Dim va As Variant
N = Cells(Rows.Count, "A").End(xlUp).Row
Set rA = Range("A1:A" & N)
Set rB = rA.Offset(0, 1).Cells.SpecialCells(xlCellTypeBlanks)
If rB Is Nothing Then Exit Sub
For Each r In rB
va = r.Offset(0, -1).Value
For Each rr In rA
If rr.Value = va And rr.Offset(0, 1) <> "" Then
r.Value = rr.Offset(0, 1).Value
End If
Next rr
Next r
End Sub