按名称引用 Excel 工作表?

2024-02-15

我将工作表的名称作为字符串存储在变量中。如何对该工作表执行某些操作?

我想我会做这样的事情:

nameOfWorkSheet = "test"
ActiveWorkbook.Worksheets(nameOfWorkSheet).someOperation()

我该如何完成这件事?


有多种选择,包括使用您演示的方法、使用以及使用变量。

我的偏好是下面的选项 4:Dim类型变量Worksheet并存储工作表并调用变量的方法或将其传递给函数,但是任何选项都有效。

Sub Test()
  Dim SheetName As String
  Dim SearchText As String
  Dim FoundRange As Range

  SheetName = "test"      
  SearchText = "abc"

  ' 0. If you know the sheet is the ActiveSheet, you can use if directly.
  Set FoundRange = ActiveSheet.UsedRange.Find(What:=SearchText)
  ' Since I usually have a lot of Subs/Functions, I don't use this method often.
  ' If I do, I store it in a variable to make it easy to change in the future or
  ' to pass to functions, e.g.: Set MySheet = ActiveSheet
  ' If your methods need to work with multiple worksheets at the same time, using
  ' ActiveSheet probably isn't a good idea and you should just specify the sheets.

  ' 1. Using Sheets or Worksheets (Least efficient if repeating or calling multiple times)
  Set FoundRange = Sheets(SheetName).UsedRange.Find(What:=SearchText)
  Set FoundRange = Worksheets(SheetName).UsedRange.Find(What:=SearchText)

  ' 2. Using Named Sheet, i.e. Sheet1 (if Worksheet is named "Sheet1"). The
  ' sheet names use the title/name of the worksheet, however the name must
  ' be a valid VBA identifier (no spaces or special characters. Use the Object
  ' Browser to find the sheet names if it isn't obvious. (More efficient than #1)
  Set FoundRange = Sheet1.UsedRange.Find(What:=SearchText)

  ' 3. Using "With" (more efficient than #1)
  With Sheets(SheetName)
    Set FoundRange = .UsedRange.Find(What:=SearchText)
  End With
  ' or possibly...
  With Sheets(SheetName).UsedRange
    Set FoundRange = .Find(What:=SearchText)
  End With

  ' 4. Using Worksheet variable (more efficient than 1)
  Dim MySheet As Worksheet
  Set MySheet = Worksheets(SheetName)
  Set FoundRange = MySheet.UsedRange.Find(What:=SearchText)

  ' Calling a Function/Sub
  Test2 Sheets(SheetName) ' Option 1
  Test2 Sheet1 ' Option 2
  Test2 MySheet ' Option 4

End Sub

Sub Test2(TestSheet As Worksheet)
    Dim RowIndex As Long
    For RowIndex = 1 To TestSheet.UsedRange.Rows.Count
        If TestSheet.Cells(RowIndex, 1).Value = "SomeValue" Then
            ' Do something
        End If
    Next RowIndex
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按名称引用 Excel 工作表? 的相关文章

  • 通过 Whatsapp 从 Excel 发送图片

    我们如何通过 Whatsapp 从 Excel 发送图片 我找到了通过以下方式发送消息的vba代码https web whatsapp com https web whatsapp com Sub Test Dim text As Stri
  • 从html中获取属性字符串值

    我正在构建一个宏来使用从网站提取数据vba questions tagged vba 目前 我可以使用元素语法轻松地从表内容中获取值 例如obj getElementsByTagName td innerText 但是 当某些单元格中有一些
  • 从多页表单中获取活动控件名称和值

    我已经在网上寻找解决方案几个月了 但没有成功 我创建于Excel 2010 a UserForm与多页 我正在尝试编写一个函数来获取activecontrol名称和值 到目前为止 我已经成功使用此命令获取了控件的名称Me MultiPage
  • 使用 SAS 导出到 Excel

    假设我有 2 个 SAS 数据集 test1 sas 和 Test2 sas 现在我想将这2个数据集导出到Excel中 其中Excel文件Sheet1中将有test1 sas数据 Sheet2中将有test2 sas数据 怎么做 从 开始这
  • 将Excel数据转换为特定的JSON格式

    我收到一个 Excel 文件 xlsx 如下所示 行和列的数量可以变化 例如 它也可以如下所示 对于第一张图片中的 Excel 工作表 JSON 应如下所示 value Prename Nik Age 17 Country Switzerl
  • 在 C# 中更改 Excel 单元格格式

    如何使用 C 中的 Microsoft Excel 12 0 库更改 Excel 中单元格的格式 更具体地说 我想将给定单元格更改为文本格式 我读过了 net c 改变Excel单元格格式 https stackoverflow com q
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做
  • 通过vba在每个空间范围之间添加求和公式

    我试图进行自动化 但我被困在这里 我需要在空间范围之间动态添加总和公式 我完全迷失了使用 VBA 添加公式的能力 任何人都可以帮助我 先感谢您 我假设您想要的是 如果单元格中有空白 您希望将所有其他元素相加并将结果放置在该空白中 可能有很多
  • 在 Excel 2010 中添加基本功能区的 VBA 代码?

    我已经使用产品在 C addin express 中为 Excel 编写功能区 但我需要知道如何使用 vba 生成功能区 有人能为我提供一些代码来为此在工具栏中插入一个额外的功能区吗 我所说的功能区是指上面写着 公式 数据 评论 等的地方
  • 运行时错误:范围自动筛选上的“1004”

    我想用 VBA 做什么 使用数组过滤表并删除行 我的数组有 4 个元素 在循环中更改为有 5 个不同的集合 正在过滤的列有 5 个元素 我只想得到 1 这是一个循环 它将创建 5 个报告 每个报告根据第 29 列过滤不同的元素 如果在调试模
  • 如何填充上次保存的用户和文件的上次保存日期

    我有下面的代码从文件夹中获取文件名 Sub GetFileNames Assessed As T2 Dim sPath As String sFile As String Dim iRow As Long iCol As Long Dim
  • 如何删除Excel 2010单元格中的某些字符

    在 A 列中 我有很多类似这样的名称 约翰 史密斯 我仍然希望它们在 A 中 但 被删除了 If John Smith 位于单元格 A1 中 然后使用以下公式执行您想要的操作 SUBSTITUTE SUBSTITUTE A1 内部 SUBS
  • VBA Office2010 Shapes.PasteSpecial 失败

    我在将 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题 我想将单元格 Excel 的文本复制到Powerpoint Office2003生成了一个新的文本框 文本样式与Excel中相同 现在我的代码在 Off
  • 按日期计算 Outlook 中的电子邮件

    我有以下代码来计算 Outlook 文件夹中的电子邮件数量 Sub HowManyEmails Dim objOutlook As Object objnSpace As Object objFolder As Object Dim Ema
  • VBA:删除数组项后减少循环迭代?

    在 Excel 的 VBA 中 For i 0 To UBound artMaster For j i To UBound artMaster If i lt gt j And artMaster i VDN artMaster j VDN
  • Excel VBA 最终用户选择图表对象

    我想生成一些代码 允许最终用户从工作表中选择多个图表之一 之后我将根据该选择进行一系列操作 我正在寻找类似于 Application Inputbox Type 8 的东西 它允许对象选择而不是范围选择 我对不起眼的老VBA要求太多了吗 首
  • Excel 2013 COM API 在服务帐户下挂起 ExportAsFixedFormat

    我有一个 NET Windows 服务 它调用 Excel 2013 COM API 以在 PDF 上导出 Excel 文档 我已尝试使用在两个不同域帐户下运行的 Windows 服务来执行此代码 这两个帐户都是运行代码的计算机上的本地管理
  • VBA:访问 JSON

    我正在处理 VBA 投影 但不确定如何访问此 JSON 中的 id 应该将 players 设置为什么才能在循环中获取 id 我已经用更多代码更新了问题 JSON event games players id 182759 Code Pri
  • Apache POI - FileInputStream 工作,文件对象失败(NullPointerException)

    我尝试将所有工作表从一个工作簿复制到另一工作簿 问题是 如果我通过 FileInputStream 读取工作簿 它可以正常工作 但它不适用于文件对象 考虑以下方法 import java io BufferedReader import j
  • 在函数上使用子例程的目的

    我已经使用 Access 一段时间了 尽管我了解 Function 相对于 Sub 的明显好处是它可以返回值 但我不确定为什么我应该使用 Sub 而不是一个函数 毕竟 除非我弄错了 函数可以做所有 Subs 可以做的事情吗 注意 我完全知道

随机推荐

  • 如何在 Java 中快速检索目录列表?

    假设有一个非常简单的程序 列出给定目录的所有子目录 听起来很简单吗 除了在 Java 中列出所有子目录的唯一方法是使用文件名过滤器 http java sun com javase 6 docs api java io FilenameFi
  • php-fpm 和 nginx 会话问题

    过去一周左右我一直遇到这个问题 我一直在开发一个严重依赖会话的 PHP 项目 由于某种原因 过去几天我们在保存会话方面遇到了麻烦 知道为什么吗 这是错误 Warning Unknown open tmp sess mmd0ru5pl2h2h
  • Kendo 数据源参数映射

    我是剑道新手 我在模型绑定方面遇到问题 当我用 firebug 调试时 它显示options models 是不明确的 因此 parrameterMap 中的 if 条件始终为 false 并且网格不会填充数据 但是当我删除 parrame
  • Scientific Linux 上的 Grail(网络浏览器)安装

    我不确定 Grail 浏览器现在是否是一个好的选择 但是我想尝试一下 因为我在 Firefox Fermi 上运行图形时遇到一些问题 接下来是我尝试 grail 0 6 tgz 后获得的结果 python grail py Tracebac
  • 是否有本地 Google App Engine 数据查看器?

    我想离线使用谷歌的在线GAE数据查看器 是否有一些 python 代码可以显示我所有的本地数据甚至模式 是的 去http localhost 8000 ah admin http localhost 8000 ah admin 假设您正在使
  • 如何从服务器端 Blazor Net Core 5.0 调用 API 控制器操作?

    我创建了一个标准 Blazor 服务器应用程序 然后我添加了一个具有读 写操作的 API 控制器 现在我想从索引页调用一个操作 但它不起作用 应用程序运行没有错误 但没有返回预期的结果 状态 等待激活 方法 空 结果 尚未计算 我在控制器操
  • OpenNLP:类文件版本 55.0 错误,应为 52.0

    我在 IntelliJ IDEA 版本 17 0 6 中使用 Open NLP 版本 apache opennlp 2 2 0 库 但收到以下消息 java cannot access opennlp tools namefind Name
  • Castle ActiveRecord:映射到 C# 中的类中的 IUserType

    对于我当前的项目 我在 C 中使用 Castle 的 ActiveRecord 对于我的一个表 我确实需要使用自定义类型类 处理愚蠢的时间到时间跨度转换 为了保持我的代码干净 我喜欢定义派生自的类IUserType在对象映射类内 但我找不到
  • 如果 Moshi 中的值不匹配,如何回退到枚举

    我有一个枚举类 如果值与其中任何一个都不匹配 则希望它回退到特定的枚举值 我发现了一个关于使用 EnumJsonAdapter 的 Moshi 问题 但我没有看到任何可供我使用的公共类 我使用的是莫西 1 8 0 关于如何实现此目标的任何想
  • 为什么我的 rdd 中的 println 会打印元素字符串?

    当我尝试打印 RDD 的内容时 它会打印如下所示的内容 如何打印内容 谢谢 scala gt lines res15 org apache spark rdd RDD Array String MapPartitionsRDD 3 at f
  • OpenCL 双精度与 CPU 双精度不同

    我正在 Linux 中使用 GeForce GT 610 卡进行 OpenCL 编程 我的CPU和GPU双精度结果不一致 我可以在这里发布部分代码 但我首先想知道是否有其他人遇到过这个问题 当我运行多次迭代的循环时 GPU 和 CPU 双精
  • 需要有关 jQuery UI Accordion navigationFilter 选项的帮助

    我正在建造一个用于导航的手风琴 手风琴的每个部分都有一组链接 触发代码如下所示 document ready function selector accordion collapsible true active false navigat
  • IPFIX 数据通过 UDP 传输至 C# - 我可以解码数据吗?

    我有一个来自 MSDN 网站的代码示例 用于创建 UDP 侦听器 客户端 因为我尝试从防火墙接收 IPFIX Netflow 数据 然后使用收到的数据 该代码确实有效并开始接收数据 但它的行话 见下文 所以我想我没有正确解码它 有谁知道我需
  • 使用 NSExpression 计算值的平方?

    NSString formul 3 2 NSExpression e NSExpression expressionWithFormat formul int result e expressionValueWithObject nil c
  • .NET Core Web API / Angular 应用程序中的 Windows 身份验证

    我正在使用 Visual Studio 2019 Community 构建一个 Intranet 应用程序 用于创建 NET Core Web Api 使用 NET Core 2 2 并使用 Visual Studio Code 来创建 A
  • 用于更新值和查询过去某个时间值的状态的数据结构

    假设您对一堆独立的时变值感兴趣 每个值都代表某事物的当前状态 这些值不会按任何固定的时间表更改 并且无法从旧值预测新值 举一个具体的例子 假设您有一堆股票 并且您有兴趣跟踪它们的价值 并且每当对该股票进行交易时 您都会获得有关该股票的更新
  • 从“StringTokenizer”获取原始字符串中的位置

    我需要获取字符串中以空格分隔的标记 但我还需要知道原始字符串中每个标记的字符位置starts 有什么办法可以做到这一点StringTokenizer 另外 据我了解 这是一个遗留类 有没有更好的替代方法StringTokenizer 你应该
  • 尝试用 Java 从文件中读取 2 个单词

    我正在尝试编写一个简单的程序来读取文本文件并将单词对存储在Set 这是我为此编写的代码 import java io File import java io FileNotFoundException import java util Sc
  • 即使关联类型不同,特征实现也会发生冲突

    我正在尝试创建一个通用结构来包装isize or an AtomicIsize 但是当我尝试为该结构的两种可能实现实现一个特征时 我遇到了错误 我创建了一个最小的示例来演示我的问题如下 use std sync atomic AtomicI
  • 按名称引用 Excel 工作表?

    我将工作表的名称作为字符串存储在变量中 如何对该工作表执行某些操作 我想我会做这样的事情 nameOfWorkSheet test ActiveWorkbook Worksheets nameOfWorkSheet someOperatio