VBA - 定义多张表的范围

VBA - 定义多张表的范围

(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

相关内容