EXCEL:自动化电子表格数据输入

时间:2013-09-30 11:40:41

标签: excel vba excel-vba

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

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

Excel Example 1

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

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

实施例

Excel Example 2

它将存储" 123" A中的值,沿着A列向下找到其他匹配" 123"当它发现它们复制时#ABC; ABC"进入比赛旁边的B栏单元格。

希望这很容易理解,有人可以帮我提出一个解决方案,这将使整个过程变得更加容易,因为电子表格日益增长,手动输入需要很长时间

1 个答案:

答案 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