按代号完全引用工作表

2023-12-21

当我使用 CodeName 属性引用 Excel 工作表时,如何完全限定它们(包括工作簿引用)?

我想防止出现打开两个不同工作簿且两张工作表具有相同 CodeName 的情况。我用ThisWorkbook因为我想引用运行代码的工作簿。

我想象这样的事情:

Dim tgWs As Worksheet
Set tgWs = ThisWorkbook.WsSummary
tgWs.Cells(1,1).Value = "Test"

where WsSummary是工作表的代号。


通过代号引用工作表总是意味着该工作表位于ThisWorkbook,即包含您正在执行的代码的工作簿。

似乎没有直接的方法可以使用其代号来完全限定不同工作簿中的工作表。

此功能将帮助您执行此操作:

Function GetSheetWithCodename(ByVal worksheetCodename As String, Optional wb As Workbook) As Worksheet
    Dim iSheet As Long
    If wb Is Nothing Then Set wb = ThisWorkbook ' mimics the default behaviour
    For iSheet = 1 To wb.Worksheets.Count
        If wb.Worksheets(iSheet).CodeName = worksheetCodename Then
            Set GetSheetWithCodename = wb.Worksheets(iSheet)
            Exit Function
        End If
    Next iSheet
End Function

用法示例:

GetSheetWithCodename("Sheet1", Workbooks("Book2")).Cells(1, 1) = "Sheet1 in Book2"
GetSheetWithCodename("Sheet1", ActiveWorkbook).Cells(1, 1) = "Sheet1 in ActiveWorkbook"
GetSheetWithCodename("Sheet1").Cells(1, 1) = "Sheet1 in ThisWorkbook" 

请注意,最后一行相当于简单地说:

Sheet1.Cells(1, 1) = "Sheet1 in ThisWorkbook" 

因为,如上所述,通过代号引用工作表总是意味着该工作表位于ThisWorkbook.

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

按代号完全引用工作表 的相关文章

  • 根据每日价格时间序列计算每周收益

    我想根据每日价格的时间序列计算共同基金的每周回报 我的数据如下所示 A B C D E DATE WEEK W DAY MF PRICE WEEKLY RETURN 02 01 12 1 1 2 7587 03 01 12 1 2 2 76
  • 查找字典中某个项目对应的键

    有什么方法可以找到与 VBA 字典中给定项目相对应的键吗 http msdn microsoft com en us library aa164502 28v office 10 29 aspx http msdn microsoft co
  • 无法关闭打开的 Excel 工作簿

    我正在构建一个带有命令按钮 用户表单等的 Excel 文件 其中包含其他工作簿的链接 对于工作表上的命令按钮 我使用与用户表单中的命令按钮相同的代码 workbooks open path 使用用户表单命令按钮 添加以下内容 unload
  • 在 Excel 中将 x 轴的最大值和最小值设置为日期

    我有一个 X 轴上有日期的图表 我正在尝试使用 Excel VBA 设置该轴的最大值和最小值 下面是我的代码 似乎不起作用 有人可以帮忙吗 With ActiveSheet ChartObjects 1 Chart Axes xlValue
  • 工作表位置超出范围。连接已关闭。使用EPPLUS时

    我正在尝试使用 EPPLUS 4 0 3 打开 XLSX 文件作为模板 我什至使用了空白的 XLSX 文件 如果我不打开模板文件 空白文件或真实文件 而只是创建一个新工作簿并创建一个工作表 则它可以正常工作 或者 如果我打开模板文件并创建一
  • 如何在VBS中使用Excel内置常量[重复]

    这个问题在这里已经有答案了 我想使用VBScript而不是VBA来处理EXCEL 但是我在调 用Range Find方法时遇到了代码错误 见下文 Function find range wb domain var Dim sheet Dim
  • 使用 VBA 从 Word 发送 HTTP 请求

    我正在尝试将数据从 Word 文档发送到网页 我找到了一些代码 将其粘贴到新模块中并保存 当我运行它时 我收到 编译错误 用户定义的类型未定义 My code Sub http Dim MyRequest As New WinHttpReq
  • 如何将 Summary() 输出从 R 复制到 Excel

    你能传输 复制a的输出吗summary方法 如下所示 到 Excel 工作表 gt summary p2p dt SKILL A p2p dt SKILL A Patch in c BVG1 Patch Skill Date TOR MWF
  • 根据单元格值隐藏图表

    我是 Excel VBA 新手 我正在尝试用 VBA 代码解决这个问题 基本上 我的工作表有 12 个图表和 12 个表格 在任何给定时间 只有一个表会获取数据 并且只能看到该图 其他 11 个图表应隐藏 我试过这个 Sub getchar
  • 将文档属性字段添加到页脚会删除现有的页码

    我想在文档中每个页面的页脚中标记一个文档变量字段 我已经弄清楚如何添加该字段 但是 这样做时 页脚中已存在的页码字段将被禁用 仅保留文本并且不再充当动态页码 这是我的代码 它添加了该字段 但以某种方式禁用了页码 sectionFooter
  • 在 Git 上保存 Excel 文件的版本,以便稍后手动协调差异

    我将用一个月的时间更新Excel文件 这些文件的语言不是英语 我想我也可以使用 Git 来管理我想做的事情 情况 初始提交 我有一个用其他语言编写的 Excel 文件 我必须执行一些工作并用其中的数据填充 Excel 文件 My plan
  • SSIS Excel 导入强制错误的列类型

    我正在尝试使用 SSIS 将电子表格导入到我们的数据库中 由于某种原因 当其中两列包含字符数据时 SSIS 希望相信它们的类型为 Double 我尝试将列重新映射为 nvarchar 255 但它仍然不想选择它认为是双精度的数据 因为其中有
  • 如何在 Excel 中使用 VBA 删除“*”或“-”字符后面的文本?

    我编写了以下代码 使用 Excel 中的 VBA 删除某一行中 或 字符后面的文本 但出现错误 Sub Removetext For Each c In Range A1 ZZ1 c Value Left c Value InStr c V
  • 64 位 Windows 7 上的 Excel 2003 自动更改对 SysWOW64\MSCOMCTL.OCX 的引用,因此 32 位 Excel 会抱怨

    在 Excel 2003 VBA 项目中 我使用 MSCOMCTL OCX 中的控件 也就是说 VBA 项目引用了 System32 MSCOMCTL OCX 当我在 64 位 Windows 7 系统上的 Excel 2003 中打开该项
  • 失败 - 下载 EPPlus.dll 制作的 Excel 文件时出现网络错误

    我尝试下载由EPPlus dll来自 asp net c Web 表单应用程序 但我失败了 网络错误 需要注意的是 上述错误仅发生在 chrome 中 在其他浏览器中可以成功完成该工作 顺便说一下 这个错误不会发生在我的本地主机上 它只发生
  • SSIS:“错误:表达式“@[User::FileName].....无法写入属性”的结果

    过去 10 个小时我一直在尝试解决以下问题 我有一个 ForEach 循环容器 它在我的控制流中枚举 Excel 文件名 在 ForEach 循环容器中 我有一个将数据导入 Sql Server 的 Excel 源 这使用 User Fil
  • Outlook 宏中的 SenderName 为空

    我想要得到SenderName和和To属性来自于MailItem对象 但它们是空白的 我可以看到有SentOn Subject以及其他不为空的属性 有谁知道为什么这两个是空白的 这是我的代码 Sub TestMacro Dim myOlAp
  • 范围联合无序

    我正在尝试按特定顺序复制各种范围 然后将它们从工作簿粘贴到不同的工作簿中 现在 我已经设置了范围 例如 Set rg ws1 Range A2 A i Offset rowOffset 1 columnOffset 0 Set rg1 ws
  • 使用用户定义函数的 VBA 数据验证

    我有一个用户定义的函数 我想在自定义数据验证中使用它 我的函数工作正常 但是当我在数据验证中使用它时 每次都会出错 有代码 Public Function AlphaNumeric pValue As Boolean Dim LPos As
  • 过滤所有独特的项目,例如 Google 文档

    是否有一种快速 简单的方法来过滤 Excel 2013 列中的所有唯一项目 类似于 Google Docs 唯一 功能 这不是一个漂亮的答案 但它有效 将其作为数组公式粘贴到单元格中B2 LOOKUP 2 1 COUNTIF B 1 B1

随机推荐