0
我有一个带有〜300个类似工作表的Excel文档和一个带有名称列表的工作表。这300个工作表中的每一个都有一个特定的单元格,我需要从列表中填写一个名称。列表和表单的顺序相同(例如,sheet1需要List!C1中的名称,List!C2中的sheet2等)。我研究了VLOOKUP,但没有任何可以使用的参考数据。工作表之间的Excel自动填充
我有一个带有〜300个类似工作表的Excel文档和一个带有名称列表的工作表。这300个工作表中的每一个都有一个特定的单元格,我需要从列表中填写一个名称。列表和表单的顺序相同(例如,sheet1需要List!C1中的名称,List!C2中的sheet2等)。我研究了VLOOKUP,但没有任何可以使用的参考数据。工作表之间的Excel自动填充
我认为类似的任务,你需要使用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
当然
,它仅当“特定细胞”的地址在所有片相同
运行完美可能!谢谢! – Unanana 2015-03-19 13:37:20
很高兴能有所帮助 – Seredenkov 2015-03-19 13:43:12
你的代码是坚实的,可维护的,通常最好(假设可靠的预期迭代器顺序,我_think_是真实的)。不过,我想指出的是,与第一句假设相反,假设表格命名一致,则不需要VBA。您可以选择所有图纸,然后取消选择列表并输入从工作表名称中剥离n的INDIRECT公式。 – 2015-03-19 13:46:39