首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

VBA从已关闭工作簿中的命名单元格返回单元格值

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。它可以用于自动化处理和操作Excel、Word、PowerPoint等Office软件中的数据和功能。

在VBA中,要从已关闭的工作簿中返回命名单元格的值,可以使用以下步骤:

  1. 打开VBA编辑器:在Excel中按下Alt + F11,或者通过开发工具选项卡中的“Visual Basic”按钮打开VBA编辑器。
  2. 插入新模块:在VBA编辑器中,通过插入菜单或右键点击项目资源管理器中的工作簿,选择“插入”->“模块”来插入一个新的模块。
  3. 编写VBA代码:在新的模块中,编写以下VBA代码来返回已关闭工作簿中命名单元格的值:
代码语言:vba
复制
Function GetValueFromClosedWorkbook(closedFilePath As String, closedWorkbookName As String, namedRange As String) As Variant
    Dim closedWorkbook As Object
    Dim closedWorkbookValue As Variant
    
    On Error Resume Next
    Set closedWorkbook = GetObject(closedFilePath & "\" & closedWorkbookName)
    If Err.Number <> 0 Then
        ' 如果无法打开已关闭的工作簿,则返回错误值
        GetValueFromClosedWorkbook = CVErr(xlErrValue)
        Exit Function
    End If
    On Error GoTo 0
    
    ' 获取命名单元格的值
    closedWorkbookValue = closedWorkbook.Names(namedRange).RefersToRange.Value
    
    ' 关闭已关闭的工作簿
    closedWorkbook.Close SaveChanges:=False
    
    ' 返回命名单元格的值
    GetValueFromClosedWorkbook = closedWorkbookValue
End Function
  1. 使用函数:在Excel工作表中,可以使用=GetValueFromClosedWorkbook("已关闭工作簿的文件路径", "已关闭工作簿的文件名", "命名单元格名称")的方式调用上述函数,并传入已关闭工作簿的文件路径、文件名和命名单元格的名称。

这样,函数将会返回已关闭工作簿中命名单元格的值。

请注意,上述代码中的closedFilePath参数是已关闭工作簿的文件路径,closedWorkbookName参数是已关闭工作簿的文件名,namedRange参数是命名单元格的名称。在使用函数时,请确保提供正确的文件路径、文件名和命名单元格的名称。

推荐的腾讯云相关产品:由于要求不能提及具体的云计算品牌商,这里无法给出腾讯云的相关产品和链接。但腾讯云提供了一系列云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求在腾讯云官网上查找相关产品和详细介绍。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA程序:对加粗单元格求和

标签:VBA 下面的VBA自定义函数演示了如何对应用了粗体格式单元格求和。...ErrHandler: '检查是否溢出 If Err.Number = 6 Then SumBold = CVErr(xlErrNum) Resume Continue End Function 注意,当求和单元格区域中单元格格式发生更改时...,不会触发任何事件;而使用Application.Volatile语句,每当在工作表上内容更改时,单元格都会重新计算。...这意味着,仅对求和单元格区域中单元格设置加粗格式,使用该自定义函数求和不会改变,除非按F9键强制计算,或者在工作输入内容导致工作表重新计算。...这个程序也提供了一个模板,可以稍作修改对其它格式设置单元格来求和

14410

Excel VBA解读(140): 调用单元格获取先前计算

学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢资源用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用单元格中最后一次计算得到,并且只偶尔使用计算慢资源...GetSlowResource(vParam) End If End Function Application.Caller.Text 如果使用Application.Caller.Text,则不会获得循环引用,但会检索单元格显示为字符串格式化...因此,如果单元格被格式化为带有2个小数位数字,则检索到将被截断为2个小数位。...”工作簿,因此下次打开工作簿时,检索到将为“空白/零”。...小结 有几种方法可以VBA用户定义函数最后一次计算获取先前,但最好解决方案需要使用C++ XLL。

6.7K20

Excel宏教程 (宏介绍与基本使用)

AutoCAD2000)等对VBA支持,这些软件也进入到了VBA控制范 围;2、可以将用VBA编写程序复制到Visual Basic调试并运行,从而实现用Visual Basic来控制有关应用程序...此时,可用 Areas(index)集合返回单个Range对象,其中index为单元格块编号;如Areas(1)。...如下例将工作表”Sheet1″A1单元格赋给Integer变量I,并将I+1赋给当前工作B1单元格: Dim I As Integer I=Worksheets(“Sheet1”).Cells...D3:D5)” 4、引用其它工作簿单元格 在被引用单元格所在工作表名前加上”[工作簿名]”,即可引用其它工作簿单元格。...而若此存盘文件存在,也可用关闭excel警告提示方法以免其自动弹出提示框。

6.3K10

Excel VBA编程

selectionchange事件:当选中单元格改变时发生 高亮选择区域相同 用批注记录单元格数据修改情况 常用worksheet事件 使用工作簿事件 open事件:当打开工作簿时发生 beforeclose...对象常用属性 属性 返回对象 ActiveCell 当前活动单元格 ActiveChart 当前活动工作簿活动图表 Activesheet 当前活动工作簿活动工作表 ActiveWindow...保存工作簿 save方法保存存在文件 saveas方法将工作簿另存为新文件 另存为新文件后不关闭原文件 thisworkbooks.save thisworkbooks.saveas filename...其中CloseMode参数是我们关闭窗体方式,不同关闭方式返回也不相同 CloseMode参数返回说明 常数 说明 vbFormControlMenu 0 在窗体单击【关闭】按钮关闭窗体...标签告诉VBA,当程序运行过程晕倒运行时错误时,跳转到标签所在行代码继续执行程序,实际上就是让程序跳过出错代码,另一个地方重新开始执行程序。

45.2K21

EXCEL VBA语句集300

) ThisWorkbook.Save ‘保存工作簿 (11) ThisWorkbook.close ‘关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count ‘获取活动工作工作表数...) ‘在活动工作返回所有符合条件格式设置区域 (58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生第...(104) Workbooks.Close ‘关闭所有打开工作簿 (105) ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿第一条链接...(注:若工作簿未保存,则为空) (109) ThisWorkbook.ReadOnly ActiveWorkbook.ReadOnly ‘返回当前工作簿读/写(为False) (110)...ThisWorkbook.Saved ActiveWorkbook.Saved ‘返回工作簿存储(若保存则为False) (111) Application.Visible = False

1.7K40

一起学Excel专业开发09:定义名称

图1 这样,就可以在工作VBA中使用这个命名常量。要修改时,也只需在编辑名称对话框对其进行修改即可。 在VBA命名常量用途: 1.标识工作表。...在每个工作簿定义一个唯一命名常量,用来标识工作簿所在程序。程序可以通过命名常量来判断其是否属于当前工作簿。 3.标识程序版本。...通过命名常量,判断某工作簿属于哪个版本程序,便于在程序升级时进行相应处理。 命名单元格区域 可以使用一个具有意义名称来代表某单元格区域。...例如下图2所示,定义名称“MyData”代表单元格区域A1:C5。 ? 图2 这样,我们可以使用MyData来引用单元格区域A1:C5,不仅可以在工作引用,还可以在VBA引用。...图5 此时,在列A以外任意单元格输入:=SameRow,都将返回相对应同一行列A单元格,如下图6所示。 ?

1K20

Excel编程周末速成班第21课:一个用户窗体示例

你可以根据需要设置它们格式,但是要确保它们位于单元格A2至单元格F2。 4.将工作簿另存为Address.xlsm。 至此,工作簿模板已完成,你可以继续设计用户窗体。...如你在第20课中所学习,此事件接收一个参数,该参数标识所按下键。如果该键可以接受,则将其传递;否则取消。 在VBA联机帮助KeyCode列表,你可以看到键0到9代码为48到57。...注意:验证代码放置在函数(而不是子过程),因此它可以将返回给调用程序:如果验证成功,则返回True;如果失败,则返回False。 验证过程代码如清单21-3所示。...注意,除了函数代码外,返回说明符AsBoolean添加到函数第一行。你应该将此清单代码添加到你程序。...你知道第一列标题位于单元格A2。这意味着第一行空白开始于单元格A3或它下面的任何单元格。有几种方法可以识别第一个空行。这里使用其中一种,如下: 1.单元格A2开始作为参考点。

6K10

VBA小技巧09:非连续单元格区域将复制到指定单元格区域

本文将给出一段VBA代码,非连续单元格区域复制并粘贴到另外指定单元格区域。 如下图1所示,将右侧两个单元格区域数据复制到左侧两个单元格区域中。 ? 图1 下图2是粘贴数据后结果。 ?...图2 如果我们直接同时复制右侧两个区域中数据,由于Excel不允许对多重选择区域执行复制操作,会弹出如下图3所示提示信息。 ? 图3 看来并不如想像那样简单!但是,我们可以使用VBA来完成。...首先定义数据区域名称和要复制到区域名称。 如下图4所示,将单元格区域H2:K4和G7:J9定义名称为“copyrng”。 ?...1 To i Range("pasterng").Areas(j).Value =Range("copyrng").Areas(j).Value Next End Sub 代码,...Range("pasterng").Address返回代表引用单元格区域地址字符串,多个区域中间使用“,”隔开,而其中“:”号个数就是引用单元格区域数,所以代码: Len(strAddress)

2.9K40

VBA代码库09:增强CELL函数和INFO函数

excelperfect 本文介绍自定义函数来源于wellsr.com,以ExcelCELL函数和INFO函数为样板,可直接返回工作表或工作簿名称或工作簿路径,以及与Excel及其操作环境有关各种信息...参数reference,可选,默认是最后一个发生变化单元格。 例如,下面的公式: =CELL("filename",A1) 在我示例工作簿返回: D:\01....或 "help" 返回This文本列表 ' This = 上面没有列出任意字符串返回Environ(This) ' 如果Target为空(默认), 则Target被设置为引用此函数单元格(如果在VBA...如果参数Target引用了未打开工作簿,则Target可能会被视为NameOf函数引用(其默认单元格或无效Range。...注意,使用Application.Volatile以确保在打开工作簿或重新计算单元格时,所有引用NameOf函数单元格都会得到更新。

4.5K10

Excel应用实践11:合并多个工作簿数据——示例2

在上一篇文章《Excel应用实践10:合并多个工作簿数据》,我们使用代码快速合并超过50个Excel工作簿文件,然而,如果要合并工作簿工作名称不相同,但位于每个工作簿第1个工作表;并且,...要在合并后工作第1列输入相对应工作簿文件名,以便知道合并后数据来自哪个工作簿文件。...同样,可以使用VBA代码快速解决。...'获取新添加Combined工作表第2列 '最后一个数据单元格之后单元格 '注意End属性后括号2表示最后单元格之后单元格...,将数据依次添加到新增加工作,同时在工作表首列添加工作簿文件名。

2.7K20

Excel应用实践03:使用Excel进行个人计划执行记录与统计分析

图4 在图4单元格C4是统计起始日期,命名为startDate;单元格D4是统计结束日期,命名为endDate,这是我们在这个工作唯一要输入两个数值。...工作表“个人计划执行记录”单元格区域J1:K2是条件区域,关联了工作表“计划执行统计”输入起始日期(startDate)和结束日期(endDate)。...单元格M1开始,放置符合筛选条件数据,如下图6所示。 ?...图6 代码将筛选出数据与分类(category)比较,计算相应分类上事项所花时间及开展次数,并输入工作表“计划执行统计”单元格区域C7:D21。...如果工作分类或列数据有增减,要作相应修改。 代码图片版如下: ? 结语:不必拘束于代码优雅,也不必在意通用性,只要能够解决问题,快速实现自已目的,适合自已就行,这就是VBA最大好处。

1.8K20

VBA专题02:使用代码进行复制操作

或者工作一个单元格区域复制到同一工作另外单元格区域,或者工作一个单元格区域复制到另一工作单元格区域,甚至工作一个单元格区域复制到不同工作簿工作单元格区域。...直接赋值 如下图1所示,使用代码: Range("D1:E2").Value= Range("A1:B2").Value 将单元格区域A1:B2直接复制到单元格D1:E2。 ?...图1 使用Copy方法 也可以使用Copy方法,将单元格区域A1:B2复制到以单元格D1开头单元格区域中: Range("A1:B2").CopyRange("D1") ?...然后,判断数组第1维是否为“完美Excel”并复制到工作表Sheet5。注意,数组变量必须声明为Variant型。 使用For循环 使用For循环,也可以实现上图3结果。...在使用VBA代码进行复制操作时,我们不需要先选择想要复制数据,也不需要选择或激活数据所在工作表。 2. 在不同工作表之间复制,或者在不同工作簿之间复制时,在前面加上相应工作表或工作簿名称。

6.1K20

Excel VBA对象模型

1、对象模型 上一讲说了Range对象,这一次我们总体方面来说一下Excel VBA对象模型。 你真正想了解Excel VBA对象的话,看官方文档是最好,没有比官方文档更准确了。...这样你关闭了那个唯一打开Excel文件,但是这时候,Excel这个程序并没有退出,你还可以看到1个界面,这个就是我们安装目录里,那个叫做EXCEL.EXE(我们双击打开这个,会自动创建1个新工作簿)...Range("A1"),因为这个Range对象根本不存在,我们通过ThisWorkBook.Close False这句代码,已经关闭工作簿,当前根本没有了单元格了,操作根本不存在东西,当然出错。...False关闭了唯一工作簿一样,只有Application,也就是只有天下,还没有国。...而修改一些单元格时候,有的可能是直接在原来内存地址修改数据即可,有些仍然要新开辟内存空间存放,然后把原来空间释放掉。 所以很多读取属性语句是要比赋值语句快很多。

2.2K31

啰哩啰嗦地讲透VBA引用单元格区域18个有用方法--Range属性

特别是,这里并没有指定所引用特定Excel工作簿工作表。为此,必须理解下面的内容。 集合引用对象 在VBA,对象集合是一组相关对象。...有两种主要类型默认对象可用于简化完全限定对象引用: 1.Application对象 2.活动工作簿工作表对象 VBA始终假定处理是Excel本身。...此外,VBA假定正在处理当前活动工作簿和活动工作表。...这种简化比前一种更复杂,因为它依赖于正确识别活动工作簿工作表,这比识别Excel应用程序本身稍微困难一些。 然而,也可以使用这两个默认对象创建更简单VBA对象引用。...在尝试将赋给合并单元格时,应特别小心。通常,只能通过将赋给区域左上角单元格(上例单元格A1)来执行此操作。否则,ExcelVBA(通常)不会:进行赋值;和返回错误。

6.1K20

Vba菜鸟教程

单元格输入公式 利用单元格公式返回 调用工作表函数 利用vba函数 自定义函数 操作对象 类模块 excel应用对象 操作工作簿 操作工作表 操作单元格 图形对象 事件 关闭事件 工作簿事件...Print “立即窗口输出过程:”&x 本地窗口可以显示中断,逐步调试时对象信息,变量值,数组信息,Stop可以中断 宏 开发者工具,设置安全性启用宏,保存文件需要保存为启用宏工作簿 使用相对流录制宏...application.quit 操作工作簿 Workbooks 工作簿集合,Workbooks(N),打开第n个工作簿 Workbooks(“工作簿名称”) ThisWorkBook 代码所在工作簿...524288 文本为右对齐 vbMsgBoxRtlReading 1048576 指定文本应为在希伯来和阿拉伯语系统从右到左显示 返回 常数 说明 vbOK 1 确定 vbCancel 2...“移动工作簿”对话框 xlDialogWorkbookName 386 “命名工作簿”对话框 xlDialogWorkbookNew 302 “新建工作簿”对话框 xlDialogWorkbookOptions

16.8K40

一起学Excel专业开发16:使用表驱动方法管理工作表用户接口

工作存储需要完成任务,代码工作读取这些任务并执行,从而完成相应操作,这就是表驱动方法。 通常,表驱动方法能够: 1.管理工作簿工作表用户接口设置。...这个工作表通常位于加载宏工作,而管理工作设置VBA代码存放在加载宏工具模块。(工具模块其实就是一个标准模块,用于在开发过程辅助程序员工作,但并不被应用程序本身使用。)...2.遍历接口工作簿每个工作表,按照用于接口设置工作顺序读取相应预定义名称,并将其保存到用于接口设置工作相应单元格。 3.删除接口工作所有设置,便于工作簿维护和修改。...代码4:读取接口工作簿预定义名称到用于接口设置工作 '接口工作簿读取预定义名称设置到 '用于接口设置工作表相应单元格 Public Sub ReadSettings() '...因为直接在接口工作簿采取手工方式更新设置非常容易,只需要更新每个工作预定义名称即可。在完成这些调整操作后,将最新预定义名称写回到用于接口设置工作,以保持驱动表与接口工作簿设置一致。

89730

VBA专题10-25:使用VBA操控Excel界面之一个示例程序

如果激活工作表(名为Sheet1)具有指定工作表级命名区域(例如,名为MyRange单元格区域),那么启用Custom选项卡不同组一组控件按钮。...能够单元格上下文菜单访问自定义控件(名为Remove USD)。 要创建这个程序,执行下列步骤: 1. 创建一个新工作簿,将其保存为启用宏工作簿。 2....右击工作表选项卡,选择插入来添加一个图表工作表。 3. 重命名工作表为Sample、Sheet1和Sheet2。 4. 激活工作表Sheet1,选择一个单元格区域,在“名称”框输入“Sheet1!...MyRange”来命名为一个工作表级名称。 5. 关闭工作簿,然后在Custom UIEditor打开该工作簿。 6....保存,关闭,然后在Excel重新打开该工作簿

2.2K10
领券