(A:WWW)
尝试为列表中的每个工作表定义相同的范围,Sheets("B").Range(C10:C42)
但下面显示的代码不起作用。
抱歉,没有充分解释宏的目的。请让我在这里再试一次:目标是从 20 个工作表中命名 20 个范围。示例:有 20 个工作表,名为 apple、orange、grape 等。假设此名称列表位于 C1:C20 中的“Background”工作表中。因此...在 Apple 工作表中:将列 A:WWW 命名为“Hist_Apple”在 Orange 工作表中:将列 A:WWW 命名为“Hist_Orange”在 Grape 工作表中:将列 A:WWW 命名为“Hist_Grape”等等... 重复 20 次。感谢您的快速回复!!
Sub Define_Range()
Dim ws As Worksheet
Dim rng As Range
Dim foundws As String
For Each ws In ThisWorkbook.Worksheets
Set foundws = Sheets("B").Range("C10:C42").Find(ws.Name, LookAt:=xlWhole)
If foundws Is Nothing Then
Sheets(foundws).Select
With ActiveWindow
Set rng = foundws.Range("$A:$WWW")
ActiveWorkbook.Names.Add Name:="Hist_" & foundws.Name, RefersTo:=rng
End With
End If
Next ws
End Sub
答案1
如果没有看到您的数据,则不清楚,但可以考虑替换:
If foundws Is Nothing Then
和:
If Not foundws Is Nothing Then