我有这个动态的命名范围:
= OFFSET('Sheet1'!$ H $ 1,0,0,COUNTA('Sheet1'!$ H $ 1:$ H $ 100)-COUNTIF('Sheet1'!$ H $ 1,0))
它仅适用于Sheet1。
如何修改此公式,使其适用于所有工作表?(大约有20种不同的工作表,分别命名为“ 2010”,“ 2011”等)。
编辑:
您需要使用工作表范围而不是工作簿范围的同名命名范围。
我已将您的命名范围定义修改为以下内容。
=Sheet1!$H$1:INDEX(Sheet1!$H:$H, MATCH(1E+99, Sheet1!$H:$H))
此VBA将为循环中的所有工作表创建名为范围的工作表范围。
Sub createNames()
Dim wsn As Long, f As String
For wsn = 2010 To 2019
On Error GoTo next_wsn
With Worksheets(CStr(wsn))
On Error Resume Next
.Names("Hnumbers").Delete
On Error GoTo 0
f = Replace("=Sheet!R1C8:INDEX(Sheet!C8, MATCH(1E+99, Sheet!C8))", "Sheet", Format(wsn, "'0'"))
.Names.Add Name:="Hnumbers", RefersToR1C1:=f
End With
next_wsn:
Next wsn
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句