2013-09-30 84 views
-2

我目前正在做一些電子表格的數據輸入,其中包含數百個條目,並希望自動化該過程,我對我希望它做什麼有一個很好的想法,但對Excel或VBA。EXCEL:自動化電子表格數據輸入

它背後的想法是,我在一列中有一個代碼,在下一列中有另一個代碼,它是前一列中值的唯一代碼。舉個例子:

Excel Example 1

因此,對於包含123列旁邊將是「ABC」的每一個細胞。

我想要的一種解決方案是一個宏,它將在列A中存儲每個單元格的值(或某種特定效果),然後逐漸下移以檢查與存儲的值相匹配的值一。如果找到匹配項,則宏將複製來自列B的代碼,即存儲單元格旁邊的單元格,並將其複製到列B中位於匹配旁邊的單元格中。

例:

Excel Example 2

它將存儲在「123」中的值,工作的方式下A欄找到其他細胞匹配「123」,當它發現它們複製「ABC」進匹配旁邊的列B單元格。

希望這是很容易理解,有人可以幫我想出一個解決方案,將使得整個過程容易得多的電子表格,根據白天和手動輸入增長遠抽出太多的時間

+2

詢問代碼的問題必須證明對所解決問題的最小理解。包括嘗試解決方案,爲什麼他們沒有工作,以及預期的結果。另請參閱:[Stack Overflow question checklist](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

是啊,看起來工作!謝謝,我從幾個小時的工作中解救出來,而我的老闆咀嚼着我的頭。 –

相關問題