-2

我目前正在为包含数百个条目的电子表格进行一些数据输入,并希望使该过程自动化,我很清楚我想要它做什么,但对 Excel 或 VBA 的经验很少。

它背后的想法是我在一列中有一个代码,而在下一列中有另一个代码,它对前一列中的值是唯一的。举个例子:

Excel 示例 1

因此,对于每个包含 123 的单元格,它旁边的列将是“ABC”。

我想要的解决方案是一个宏,它将沿着 A 列向下工作,存储每个单元格的值(或类似效果的东西),然后向下工作以检查与存储的单元格匹配的值。如果找到匹配项,则宏将从 B 列(存储单元格旁边的单元格)复制代码,并将其复制到 B 列中匹配项旁边的单元格中。

例子:

Excel 示例 2

它将“123”值存储在 A 中,沿着 A 列向下查找与“123”匹配的其他单元格,当它找到它们时,将“ABC”复制到匹配项旁边的 B 列单元格中。

希望这很容易理解,并且有人可以帮助我提出解决方案,这将使整个过程变得更加容易,因为电子表格每天都在增长并且手动输入需要花费很多时间

4

1 回答 1

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
于 2013-09-30T12:45:25.357 回答