Excel 根据名称查找工作表

2023-12-01

这不是一个问题,而是一个解决方案,但我想在这里分享它,因为我在这里得到了我需要的帮助。

我想在活动工作簿中查找特定的 Excel 工作表,并按工作表名称进行搜索。我构建这个是为了找到它。这是一个“包含”搜索,如果找到,会自动转到工作表,或者询问用户是否有多个匹配项:

要随时结束,只需在输入框中输入空格即可。



Public Sub Find_Tab_Search()
    Dim sSearch As String
    sSearch = ""
    sSearch = InputBox("Enter Search", "Find Tab")
    If Trim(sSearch) = "" Then Exit Sub
    'MsgBox (sSearch)

    Dim sSheets() As String
    Dim sMatchMessage As String
    Dim iWorksheets As Integer
    Dim iCounter As Integer
    Dim iMatches As Integer
    Dim iMatch As Integer
    Dim sGet As String
    Dim sPrompt As String

    iMatch = -1
    iMatches = 0
    sMatchMessage = ""

    iWorksheets = Application.ActiveWorkbook.Sheets.Count
    ReDim sSheets(iWorksheets)

    'Put list of names in array
    For iCounter = 1 To iWorksheets
        sSheets(iCounter) = Application.ActiveWorkbook.Sheets(iCounter).Name
        If InStr(1, sSheets(iCounter), sSearch, vbTextCompare) > 0 Then
            iMatches = iMatches + 1
            If iMatch = -1 Then iMatch = iCounter
            sMatchMessage = sMatchMessage + CStr(iCounter) + ": " + sSheets(iCounter) + vbCrLf
        End If
    Next iCounter

    Select Case iMatches
        Case 0
            'No Matches
            MsgBox "No Match Found for " + sSearch
        Case 1
            '1 match activate the sheet
            Application.ActiveWorkbook.Sheets(iMatch).Activate
        Case Else
            'More than 1 match. Ask them which sheet to go to
            sGet = -1
            sPrompt = "More than one match found. Please enter number from following list"
            sPrompt = sPrompt + "to display the sheet" + vbCrLf + vbCrLf + sMatchMessage
            sPrompt = sPrompt + vbCrLf + vbCrLf + "Enter blank to cancel"
            sGet = InputBox(sPrompt, "Please select one")
            If Trim(sGet) = "" Then Exit Sub
            sPrompt = "Value must be a number" + vbCrLf + vbCrLf + sPrompt
            Do While IsNumeric(sGet) = False
                sGet = InputBox(sPrompt, "Please select one")
                If Trim(sGet) = "" Then Exit Sub
            Loop
            iMatch = CInt(sGet)
            Application.ActiveWorkbook.Sheets(iMatch).Activate
    End Select

End Sub
  

我希望有人觉得这很有用,并且也欢迎改进建议。


为了好玩,尝试使用循环以尽可能少的行数来完成此操作

使用未充分利用的范围名称、xlm 和 VBSFilter提供与上面相同的多表搜索功能。

大部分代码与工作表选择部分相关

Sub GetNAmes()
Dim strIn As String
Dim X

strIn = Application.InputBox("Search string", "Enter string to find", ActiveSheet.Name, , , , , 2)
If strIn = "False" Then Exit Sub

ActiveWorkbook.Names.Add "shtNames", "=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND(""]"",GET.WORKBOOK(1)))"
X = Filter([index(shtNames,)], strIn, True, 1)

Select Case UBound(X)
    Case Is > 0
        strIn = Application.InputBox(Join(X, Chr(10)), "Multiple matches found - type position to select", , , , , 1)
        If strIn = "False" Then Exit Sub
        On Error Resume Next
        Sheets(CStr(X(strIn))).Activate
        On Error GoTo 0
    Case 0
        Sheets(X(0)).Activate
    Case Else
        MsgBox "No match"
End Select

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel 根据名称查找工作表 的相关文章

  • MS Office SaveAs 类型 FileDialog 在 vb 中带有过滤器

    我想创建一个带有过滤器的 另存为 文件对话框 但这似乎无法使用 FileDialog 类 Microsoft Office 12 0 对象库 实现 文档实际上提到了这一点here http msdn microsoft com en us
  • VBA按空格分割字符串

    我想要一个 Excel 函数 我可以调用该函数并将单元格传递到其中 输入 Firstname Lastname email protected cdn cgi l email protection Firstname midname Las
  • 将 PDFMaker 与 MS Outlook 结合使用

    我想将 Adob e PDFMaker 插件与 MS Outlook 2013 一起使用 使用 PDFMAKER 将多封电子邮件保存为 pdf https stackoverflow com questions 44723984 savin
  • 如何自动将图表从 Excel(或 Calc)导出为 PNG

    问题 我正在开发一个 Web 应用程序 它将数据从数据库导出到 Excel 包括图表 这首先是导出的主要原因 现在我希望图表在网页上也可见 而不需要导出数据并打开下载的 Excel 文件 这当然可以使用 JS 库来完成 但是由于图表相当复杂
  • Excel宏-将逗号分隔的条目拆分为新行[重复]

    这个问题在这里已经有答案了 我目前在一张纸上有这些数据 Col A Col B Col C 1 A angry birds gaming 2 B nirvana rock band 我想要做的是将第三列中的逗号分隔条目拆分并插入新行 如下所
  • 如何从包含许多表的 Excel 工作表中解析数据帧(使用 Python,可能使用 Pandas)

    我正在处理布局糟糕的 Excel 工作表 我正在尝试解析这些工作表并将其写入数据库 每个工作表可以有多个表 尽管这些可能的表格的标题是已知的 但哪些表格将位于任何给定的工作表上 它们在工作表上的确切位置也不是已知的 表格不以一致的方式对齐
  • 解析未完全加载 VBA 的网站

    尝试进行简单的网络解析 我的问题是页面在向下滚动之前无法完全加载 谷歌搜索已经提出可能使用硒 但由于我不知道如何使用它 我想我会在这里问 我使用的代码 Sub gfquote Dim oHttp As MSXML2 XMLHTTP Dim
  • 在 Excel 工作簿中找不到链接

    我编写了一个宏来打开多个受密码保护的工作簿 这些工作簿彼此之间都有链接 因此为了方便起见 我设置了UpdateLinks 0这样在其他书籍打开之前 我就不会收到所有链接更新的密码提示 所有工作簿打开后 我尝试使用以下命令更新链接 Workb
  • Excel 的查找和查找下一个 VBA

    我一直在试图弄清楚如何处理这个问题 但基本上我想要一种方法来打印 B 列中的值 给定与 A 列匹配的特定值 例如 Column A Column B 1 ABC 2 DEF 3 GHI 1 JKL 我想在使用 find findnext 或
  • 如何使用 pandas.to_excel() 创建 Excel **表格**?

    Need the achieve this programmatically from a dataframe https learn microsoft com en us power bi service admin troublesh
  • VBA C# DLL 未注册

    我制作了一个 C NET dll 我想从 VBA 运行它而不注册它 我找到了解决方案there https stackoverflow com a 13333819并且它可以完美工作 但前提是程序集是使用 Framework NET 3 5
  • 是否有任何公式可用于将特定单元格复制指定次数?

    目前我正在处理一份数据 其中我有一个公司名称列表 例如 1 A 2 B 3 C 还有很多 需要的结果是 1 A 2 A 3 A 4 A 5 A 6 B 7 B 8 B 9 B 10 B 11 C 12 C 13 C 14 C 15 C 等等
  • Outlook 中用于删除重复电子邮件的宏 -

    Public Sub RemDups Dim t As Items i As Integer arr As Collection f As Folder parent As Folder target As Folder miLast As
  • 如何将多个 Excel 工作表转换为 csv python

    我想转换所有的excel文档 xls 将工作表转换为 csv 如果 excel 文档只有一张工作表 那么我将进行如下转换 wb open workbook path1 sh wb sheet by name Sheet1 csv file
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 获取给定日期的周数

    例子 DD MM YYYY 1 1 2009 should give 1 31 1 2009 should give 5 1 2 2009 should also give 5 Format 1 2 2009 ww 回报6 那么 怎样才能得
  • 如何暂停特定时间? (Excel/VBA)

    我有一个 Excel 工作表 其中包含以下宏 我想每秒循环一次 但如果我能找到执行此操作的函数 那就很危险了 难道不可能吗 Sub Macro1 Macro1 Macro Do Calculate Here I want to wait f
  • 二维数组作为字典的项目

    我想用一个项目的几个属性填充字典 例子 我正在考虑拥有Item 1 and Item 2 as Dictionary键与array这将保留其属性 我需要能够单独访问项目的每个属性 因此将它们连接为一个字符串不是一种选择 我正在考虑类似下面的
  • Excel VBA 用户窗体 - 当发生变化时执行 Sub

    我有一个包含很多文本框的用户表单 当这些文本框的值发生变化时 我需要通过调用子例程 AutoCalc 根据文本框值重新计算最终结果值 我有大约 25 个框 我不想向每个调用上述子例程的文本框单独添加 Change 事件 当某些值发生变化时调
  • VBA全局类变量

    我的障碍是试图让多个子程序识别类变量 当我尝试全局声明它们时 出现编译错误 无效的外部过程 然后 当我运行公共函数或子函数来声明变量时 它们在其他子函数中保持未定义状态 我希望多个子程序能够识别变量 因为它们的值应该通过用户窗体进行更改 然

随机推荐

  • 基于 WebKit 的 Mac 应用程序可以使用 Safari 中的 HTML5 数据库吗?

    我正在开发一个基于 WebKit 的应用程序 该应用程序为大型电信客户 运行 多个不同的 Web 应用程序 最近的 Safari 版本写入共享 cookie 缓存的更改速度越来越慢 我正在寻找将会话从 Safari 移交给我们的客户端 We
  • 如何在Ubuntu上验证Github? git: 'credential-netrc' 不是 git 命令

    I read this我已经检查了我的凭据 但仍然无法 git Push git push set upstream origin master git credential netrc is not a git command See g
  • 如何使用 shell 脚本迭代每行多个单词的文本文件?

    我知道当文本文件的内容如下时如何迭代文本行 abc pqr xyz 但是 如果我的文本文件的内容如下所示 怎么办 abc xyz cdf pqr lmn rst 我需要将值 abc 存储到一个变量 将 xyz 存储到另一个变量 我该怎么做呢
  • INotifyPropertyChange ~ 当属性是集合并且新项目添加到集合中时,PropertyChanged 不会触发

    我有一个实现 INotifyPropertyChanged 接口的类 该类的一些属性是 List 类型 例如 public List
  • 跨浏览器检测浏览器窗口scrollTop的方法

    检测浏览器窗口的scrollTop的最佳跨浏览器方法是什么 我不喜欢使用任何预构建的代码库 因为这是一个非常简单的脚本 而且我不需要所有这些负担 function getScrollTop if typeof pageYOffset und
  • 从按钮命令 xamarin.forms MVVM 获取 ListView

    我在使用 MVVM 模式的 xamarin forms 应用程序中的 ListView 上遇到问题 我希望你能帮助我 这是我的 xaml
  • Elasticsearch 嵌套过滤器包含与排除

    我有一个使用嵌套对象的对象映射 props在我们的示例中 以类似标签的方式 每个标签可以属于一个客户 用户 当我们希望允许我们的用户生成query string风格搜索针对props name 问题是 当我们运行查询时 一个对象是否有多个
  • 如何在 Excel 中生成 GUID?

    我有一个excel文件 每一行都有一个订单 我希望每个订单都有一个唯一的标识符 所以会有一个唯一ID列 每次填充一行时 我希望 Excel 自动为我填充 唯一 ID 列 我做了一些研究 并被指出了 GUID 的方向 我找到了以下代码 Fun
  • android 如何实现 onTouch 功能?

    您好 我想创建一个加载大图像的应用程序 并且我可以通过简单的手势在它上面移动 我必须打印图像 但我无法实现 onTouch 因此它保持静止 任何帮助都可以 谢谢 我绘制图片的代码 Override protected void onDraw
  • 无法使用具体子类在 Swift 中实现协议中的属性

    我正在做类似于JAVA中的桥接模式的事情 DriverType是一个协议需要一个名为vehicle成为一个Drivable目的 Drivable也是一个协议 被 Car 类采用 protocol Drivable var speed Dou
  • 如何将 OpenFileDialog 函数应用到 Web 应用程序

    我正在开发一个Web应用程序 其中一个页面有一些必要性 用户应该选择系统中的任何文件夹 例如如果他选择ex D xyz 那么这个路径应该保存在数据库中 我已经编写了代码用于存储到数据库并保留所有内容 但实际上我认为 如果它就像一个浏览按钮单
  • elisp如何检查Shift键是否被按下

    我需要检查是否按下了 Shift 键 更确切地说 我想根据是否按下 Shift 键来设置直接开关 defadvice find file noselect around find file noselect set switches act
  • 如何在 C# 中跳过第一行并从第二行开始读取文件

    如何从第二行开始读取文件跳过第一行 这似乎可行 但这是最好的方法吗 using StreamReader sr new StreamReader varFile Encoding GetEncoding 1250 string string
  • System.Data.SqlClient.SqlException:用户 XXX 登录失败

    我正在 IIS 7 5 上部署一个 Web 应用程序 该 Web 应用程序有三种自行车供用户选择 山地自行车 公路自行车和旅行自行车 当我点击每个它时 我遇到了问题 System Data SqlClient SqlException 用户
  • 如何禁用 jQuery.Mobile.MVC?

    我为我的网站构建了移动视图 并且仍在创建它们的过程中 我想测试它在实时设备上的外观 所以我想禁用 mobile 文件 下面我厌倦了运行一些脚本来禁用但没有运气 也许这对开发人员来说是一个问题 但如果有人能给我指出正确的方向 你需要禁用自动初
  • JAXB 中的解组如何工作?

    我在 jaxb 中有一个元素的 getter setter 对 XmlElementWrapper name requires required true XmlElement name equals required true List
  • AS3 参数

    为什么您认为下面的代码不起作用 您将更改 添加什么以使其正常工作 任何帮助表示赞赏 function TraceIt message String num int trace message num function aa f Functi
  • 如何允许通过 http 匿名推送到 git 存储库?

    我在这里找不到例子 http www kernel org pub software scm git docs git http backend html 是否可以 将其添加到您的 httpd conf 假设 srv git 包含您的存储库
  • 我可以使用 SQLite 作为基于云的网站的数据库存储吗?

    有没有人启动过使用本地 SQLite DB 作为主要数据源的基于云的应用程序 网站 有这方面的警告吗 我的环境 C 3 0 应用程序 目前使用sql server 2008 db 当前数据库大小 30 mb 如果您预计会有大量流量 那么您确
  • Excel 根据名称查找工作表

    这不是一个问题 而是一个解决方案 但我想在这里分享它 因为我在这里得到了我需要的帮助 我想在活动工作簿中查找特定的 Excel 工作表 并按工作表名称进行搜索 我构建这个是为了找到它 这是一个 包含 搜索 如果找到 会自动转到工作表 或者询