有一张工作表,其中列出了所有数据,并且有超过9,000张其他工作表引用该工作表并获取部分数据。
我现在必须手动完成:在每一个中,我应该在某个单元格中编写公式,引用我们的“数据表”并获取某些数据。所有床单中的单元格完全相同。公式如下:
=ListOfData!A1
,对于第二张,它看起来像:
=ListOfData!A2
......依旧等等。
我可以在没有硬编码的情况下在所有工作表中编写这些公式吗?
答案 0 :(得分:1)
如果我理解你需要什么,这是我为你做的一个快速宏:
Sub addFormula()
Dim ws As Worksheet
Dim cel As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each ws In ActiveWorkbook.Worksheets
If ws.Name <> "ListofData" Then
With ws
'This places the formula in cell A1 of each sheet. Change as necessary!
.Cells(1, 1).Formula = "=ListOfData!A" & ws.Index
End With
End If
Next ws
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
将其放在Workbook模块中。它将使用工作表索引来确定公式(即索引中的第二个工作表将在单元格=ListofData!A2
中具有A1
。
要更改公式的位置,请修改.Cells(1,1)
以解决此问题(格式为.Cells([Row],[Column])
。
由于你有超过9000张表,我希望所有众神的索引与你想要的数字相同。如果没有,您需要指定我们如何知道哪个工作表在公式中得到A1
,A2
,...,A9000
。
我高度建议在工作簿的副本中尝试此操作,然后使用40张,然后再使用大页。