2013-09-30 2 views
-2

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

Идея заключается в том, что у меня есть код в одном столбце, а в следующем столбце есть другой код, который уникален для значения в предыдущем столбце. Приведем пример:

Excel Example 1

Таким образом, для каждой ячейки, содержащей 123, столбец рядом с ним будет «ABC».

Такое решение, которое я бы хотел, представляет собой макрос, который будет работать на своем пути. Столбец A, сохраняющий значение каждой ячейки (или что-то подобное), а затем прокладывает себе путь, чтобы проверить значения, которые соответствуют сохраненным один. Если совпадение найдено, макрос затем скопирует код из столбца B, ячейки, которая находится рядом с сохраненной ячейкой, и скопируйте ее в ячейку в столбце B рядом с совпадением.

Пример:

Excel Example 2

Он будет хранить «123» значение А, работать свой путь вниз столбец А, чтобы найти другие клетки соответствия «123», и когда он находит их копировать «ABC» в ячейки столбца В рядом с совпадениями.

Надеется, что это легко понять, и кто-то может помочь мне с придумывая решениями, сделал бы весь этот процесс намного проще, как таблица растут с каждым днем ​​и ручного вводом принимает далеко много времени

+2

Вопросы, требующие кода, должны демонстрировать минимальное понимание решаемой проблемы. Включите попытки решения, почему они не работают и ожидаемые результаты. См. Также: [Контрольный список вопросов переполнения стека] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

Выглядит как [= VLOOKUP] (http://office.microsoft.com). /en-us/excel-help/vlookup-HP005209335.aspx). – pnuts

ответ

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 
+0

Да, это работает! Спасибо, спас меня от часов работы, и мой босс жевал мою голову. –

Смежные вопросы