首页 > 解决方案 > 如何使用我的所有工作表名称创建一个可自动更新的命名范围?

问题描述

我正在尝试创建一个 VLOOKUP 来搜索我所有工作表中的字符串。我找到了执行此操作的代码,但是我需要一个包含所有工作表名称的命名范围。但是,我正在创建的文件每周都会添加新的工作表,因此我需要在我添加、重命名或删除工作表时自动更新所有工作表名称的命名范围。

我该怎么办?

标签: excelvbavlookup

解决方案


你可以试试:

Option Explicit

Sub test()

    Dim ws As Worksheet
    Dim SearchString As String
    Dim LookUpRange As Range, FoundRange As Range
    Dim VLookupCol As Long

    SearchString = "Bingo"

    'Number of columns  for VLookup
    VLookupCol = 3

    For Each ws In ThisWorkbook.Worksheets
        'Search in each worksheet used range

        With ws
            Set LookUpRange = .UsedRange
            'Found range
            Set FoundRange = LookUpRange.Find(what:=SearchString, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)

            If Not FoundRange Is Nothing Then
                MsgBox .Cells(FoundRange.Row, FoundRange.Column + VLookupCol).Value
            End If
        End With

    Next ws

End Sub

推荐阅读