2015-03-19 79 views
0

我有一個帶有〜300個類似工作表的Excel文檔和一個帶有名稱列表的工作表。這300個工作表中的每一個都有一個特定的單元格,我需要從列表中填寫一個名稱。列表和表單的順序相同(例如,sheet1需要List!C1中的名稱,List!C2中的sheet2等)。我研究了VLOOKUP,但沒有任何可以使用的參考數據。工作表之間的Excel自動填充

回答

1

我認爲類似的任務,你需要使用VBA宏這樣的:

Sub DataFromList() 

Dim nameSht As String: nameSht = "List" 
Dim shtList As Worksheet 
Set shtList = ThisWorkbook.Worksheets(nameSht) 

Dim columnWithData As String: columnWithData = "C" 
Dim n%: n = 0 ' start from 1 row (0 + 1) 

' specific cell where you need to fill a name from the list 
Dim addressForData As String: addressForData = "B2" 

For Each sht In ThisWorkbook.Worksheets 
    If sht.Name <> nameSht Then 
     n = n + 1 
     sht.Range(addressForData).Formula = "=" & nameSht & "!" & columnWithData & n 
    End If 
Next sht 
End Sub 
當然

,它僅當「特定細胞」的地址在所有片相同

+0

運行完美可能!謝謝! – Unanana 2015-03-19 13:37:20

+0

很高興能有所幫助 – Seredenkov 2015-03-19 13:43:12

+0

你的代碼是堅實的,可維護的,通常最好(假設可靠的預期迭代器順序,我_think_是真實的)。不過,我想指出的是,與第一句假設相反,假設表格命名一致,則不需要VBA。您可以選擇所有圖紙,然後取消選擇列表並輸入從工作表名稱中剝離n的INDIRECT公式。 – 2015-03-19 13:46:39