2015-03-19 80 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