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

如何在VBA中引用另一个(打开或关闭)工作簿,并将值拉回? - Excel 2007

在 VBA 中引用另一个工作簿并将值拉回,可以通过以下步骤实现:

  1. 打开两个工作簿,一个是源工作簿,另一个是目标工作簿。
  2. 在目标工作簿中按下 Alt + F11 打开 VBA 编辑器。
  3. 点击 插入 > 模块,在新的模块中输入以下代码:
代码语言:vba
复制
Sub GetDataFromAnotherWorkbook()
    Dim sourceWorkbook As Workbook
    Dim targetWorkbook As Workbook
    Dim sourceWorksheet As Worksheet
    Dim targetWorksheet As Worksheet
    Dim sourceWorkbookPath As String
    Dim lastRow As Long
    
    ' 设置源工作簿的路径
    sourceWorkbookPath = "C:\source_workbook.xlsx"
    
    ' 设置源工作簿和工作表
    Set sourceWorkbook = Workbooks.Open(sourceWorkbookPath)
    Set sourceWorksheet = sourceWorkbook.Worksheets("Sheet1")
    
    ' 设置目标工作簿和工作表
    Set targetWorkbook = ThisWorkbook
    Set targetWorksheet = targetWorkbook.Worksheets("Sheet1")
    
    ' 获取源工作表中数据的最后一行
    lastRow = sourceWorksheet.Cells(sourceWorksheet.Rows.Count, "A").End(xlUp).Row
    
    ' 将源工作表中的数据复制到目标工作表
    sourceWorksheet.Range("A1:B" & lastRow).Copy Destination:=targetWorksheet.Range("A1")
    
    ' 关闭源工作簿
    sourceWorkbook.Close
End Sub
  1. 修改代码中的 sourceWorkbookPath 变量,将其设置为源工作簿的路径。
  2. 点击 运行 > Run Sub/UserForm,选择 GetDataFromAnotherWorkbook 并点击 运行
  3. 此时,源工作簿中的数据将被复制到目标工作簿的相应位置。

这样,您就可以在 VBA 中引用另一个工作簿并将值拉回。

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

相关·内容

Excel实战技巧67:在组合框添加不重复(使用ADO技巧)

本文讲解一种技巧,使用Recordset(记录集)来获取唯一并将其填充到组合框。 示例数据如下图1所示。在工作表中有一个组合框,需要包含列A的省份列表,但是列A中有很多重复的省份数据。 ?...可以在任何事件过程调用它们,例如工作簿打开事件、查询刷新事件或者按下按钮后。 运行调用过程后,在工作单击组合框右侧下拉按钮,结果如下图3所示。 ?...2.Data Source:告诉VBA在哪里找到包含所需数据的数据库工作簿。使用Data Source参数,要传递完整的数据库工作簿路径。...3.Extended Properties:当连接到Excel工作簿时使用。告诉VBA数据源来自数据库。...当处理Excel 2007工作簿时,参数为:Extended Properties=Excel12.0。

5.5K10

Excel编程周末速成班第3课:Excel对象模型

说明:如果要在另一个Office程序(Word)编写VBA代码,并且需要对Excel进行编程,则需要显式创建ExcelApplication对象。但是这超出了本书的范围。...下面的代码示例演示如何使用ForNext … In循环关闭所有打开工作簿,并保存所有更改。...如果已经创建打开工作簿(换句话说,如果它已经存在于Workbooks集合),则可以直接从集合引用它。因此,代码 Workbooks(Name) 返回对具有指定名称的工作簿引用。...要将工作表复制到另一个工作簿,省略After和Before参数。Excel创建一个新的工作簿,然后将工作表复制到其中。 提示:无法将工作表直接复制移动到现有工作簿。...提供了用于创建新工作簿打开现有工作簿,保存和关闭工作簿以及其他必需任务的方法。 工作表由Sheets集合的Sheet对象表示。你可以根据需要添加、删除、复制和移动工作表。

5K30

VBA专题10-15:使用VBA操控Excel界面之在功能区添加自定义标签控件

excelperfect 如果要在功能区选项卡添加标签,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏的工作簿。 2. 关闭工作簿,然后在CustomUI Editor打开工作簿。...getLabel是一个回调属性,赋值VBA过程的名称,本例为getLabel1回调过程。该过程在首次打开工作簿时或者在使该控件无效时执行。...一旦使某元素无效,任何与该元素相关的数据就被销毁,并且通过调用所有的在XML代码声明的该元素的回调属性引用VBA过程来自动刷新该元素。因此,要提高效率,应仅使必需的元素无效。...之后,要将其粘贴到工作簿VBA模块。 7. 保存并关闭该文件。 8. 在Excel打开工作簿文件。...因为是第一次在Excel打开该文件,会得到关于getLabel1的错误消息的提示,因为在标准的VBA模块还没有getLabel1回调过程。此时,单击“确定”关闭错误消息。 9.

2.2K10

VBA专题10-8:使用VBA操控Excel界面之在功能区添加内置控件

创建新工作簿并保存为启用宏的工作簿。 3. 关闭工作簿,然后在CustomUI Editor打开工作簿。 4....在CustomUI Editor,单击“插入”并选择“Office 2007 Custom UI Part”。之所以选择这个选项,是使工作簿Excel 2007及以后的版本兼容。...单击工具栏的Validation按钮来检查是否有错误。 7. 保存并关闭文件。 8. 在Excel打开工作簿文件。 下图展示在功能区的“开始”选项卡出现了含两个内置控件的名为Fav的组。 ?...注意到,这是对特定文档进行功能区定制,即仅包含XML代码的工作簿显示定制的功能区,当关闭工作簿时,自动移除功能区的定制。...要在其他工作簿显示定制的功能区,应将工作簿保存为加载宏(Excel加载宏(*.xlam)),并执行下列步骤在Excel启动时装载加载宏文件: 1.

5.9K30

一起学Excel专业开发20:Excel工时报表与分析系统开发(3)——启动与关闭

关闭时,应用程序删除用户接口并将Excel恢复到该应用程序运行前的原有状态。...As String Dim objTemp As Object Dim wkbTemp As Workbook '一些属性需要打开工作簿,因此创建一个工作簿 If ActiveWorkbook...属性用来获取是否打开单独的Excel实例进程,Iteration属性获取循环引用,MaxIterations属性获取循环引用的最大迭代次数,ShowWindowsInTaskbar属性获取是否在状态栏显示界面窗口...4.设置Application.IgnoreRemoteRequests=True,这样在双击Excel工作簿图标时会打开一个新的Excel进程实例,而不会重用原来的进程实例。...5.关闭任务栏的窗口。因为可能会处理多个打开工作簿,此时不允许用户在这些工作簿之间进行跳转。 6.不允许定制命令栏。 7.针对Excel 2002及其以后的版本关闭自动恢复功能。

1.4K20

VBA专题10-9:使用VBA操控Excel界面之在功能区添加自定义按钮控件

下面的一系列文章将重点讲解如何在功能区添加不同类型的自定义控件,它们与最底层的自定义命令相关。这里的自定义命令是指程序员自已编写的VBA过程。...添加按钮 如果要在内置功能区选项卡添加两个按钮,在单击这些按钮时会调用VBA过程,那么执行下面的步骤: 1. 创建新工作簿并保存为启用宏的工作簿。 2....关闭工作簿,然后在CustomUI Editor打开工作簿。 3. 在CustomUI Editor,单击“插入”并选择“Office 2007 Custom UI Part”。 4....之后,要将其粘贴到工作簿VBA模块。 7. 保存并关闭该文件。 8. 在Excel打开工作簿文件。 9. 按Alt+F11键打开VBE。 10....Context.Caption是出现在该窗口标题栏的名称,本例,为该工作簿的名称。 Tag:XML代码中元素(本例是按钮元素)的tag属性的。通常,标签用于识别控件执行的操作。

4.9K30

VBA专题10-23:使用VBA操控Excel界面之添加动态菜单

分别重命名工作表为Data、Analysis和Reports。 3. 关闭工作簿,然后在Custom UIEditor打开。 4....单击工具栏的Validate按钮检查是否有错误。 7. 保存并关闭该文件。 8. 在Excel打开该文件。对于弹出的错误消息,单击“确定”。 9. 按Alt+F11激活VBE。 10....保存,关闭,然后重新打开工作簿。...保存,关闭,然后重新打开工作簿。 现在,复选框能够保留其在动态菜单被无效并重新构建后的状态。正如所看到的,Checkbox1Pressed模块级变量在过程调用之间保留其。...一般而言,即使工作簿的代码执行完毕,工作簿的公共级别变量、模块级变量和过程级静态变量仍然保留其。可以使用以下四种方法清除这些变量存储的: 在过程或者在立即窗口中执行End语句。

6K20

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

1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook Workbooks集合包含excel中所有当前打开excel工作簿,亦即所有打开excel...在具体使用可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称编号;Workbooks(1)、 Workbooks(“年度报表.xls”)。...而编号按照创建打开工作簿的顺序来确定,第一个打开工作簿编号为1,第二个打开工作簿为2……。...三)、处理单元格 1、直接赋值与引用 将变量、常量值直接赋给单元格、将单元格的直接赋给变量、常量,这是在excel中最简单的单元格赋值及引用方法。...如下例将工作表”Sheet1″A1单元格的赋给Integer变量I,并将I+1的赋给当前工作的B1单元格: Dim I As Integer I=Worksheets(“Sheet1”).Cells

6.3K10

Excel VBA编程

,更改Excel工作界面 application的子对象 workbook对象 引用workbook对象 访问workbook对象属性 创建工作簿——add 用open方法打开工作簿 activate...在VBA,过程的参数传递主要有两种形式:按引用传递和按传递。...200' 引用整行单元格 在VBA,rows表示工作某个区域中所有行组成的集合,要引用工作表汇总指定的行,可以使用行号或者索引号两种方式 activesheet.rows("3:3").select...想删除B3所在的整行单元格,应将代码写为: range("B3").entirerow.delete 操作对象的一些例子 根据需求创建工作簿 利用VBA创建一个符合自己需求的工作簿并将其保存到指定的目录...模块,可以在【工程资源管理器】中找到这个模块 open事件:当打开工作簿时发生 open事件是最常用的workbook事件之一,同国外吗会使用该事件对excel进行初始化设置,设置想打开工作簿看到的

45.1K21

Excel自定义上下文菜单(下)

在本文开头的VBA示例,你看到了如何通过使用工作簿的Activate和Deactivate事件调用宏来创建和删除菜单控件,从而来更改单元格上下文菜单。...在下面的示例,如果荷兰德国用户打开工作簿,则会根据用户计算机的区域语言设置调用不同的宏。...ID和控件图像ID的工作簿文件。...在Excel 2007,可以使用VBA代码将控件添加到几乎每个上下文菜单。但是,无法使用VBA更改某些上下文菜单,例如形状和图片的上下文菜单。此外,无法使用RibbonX更改上下文菜单。...在Excel 2010及后续版本,可以使用VBA代码将控件添加到几乎每个上下文菜单。使用VBA更改某些上下文菜单的限制与Excel 2007相同。

2.6K20

Excel自定义上下文菜单(上)

在Microsoft Office,上下文菜单提供了一组在应用程序的当前状态上下文中可用的有限选项。通常,可用的选择是与选定对象(单元格列)相关的操作。...Excel的上下文菜单 在Microsoft Excel,人们最常用的上下文菜单是单元格上下文菜单,这是在工作表单元格选定单元格上单击鼠标右键时看到的菜单(如下图1所示)。...图1 在Excel自定义上下文菜单 在Excel 2007以前的版本自定义上下文菜单的唯一方法是使用VBA代码,然而,在Excel 2007后续版本,还可以使用相同的功能区扩展性(RibbonX)...当打开激活该工作簿时,这些事件会自动将控件添加到单元格上下文菜单;当关闭停用该工作簿时,这些事件会自动删除添加的控件。...Call AddToCellMenu End Sub Private Sub Workbook_Deactivate() Call DeleteFromCellMenu End Sub 接下来,保存、关闭并重新打开工作簿

2.6K40

Excel编程周末速成班第26课:处理运行时错误

一个示例是Workbook对象,如果尝试打开磁盘上不存在的工作簿,或者尝试将工作簿保存到不存在的磁盘上,则Workbook对象会捕获错误并显示其自己的对话框(如图26-2所示))。...忽略错误 Excel的SpecialCells方法使你能够获得对满足特定条件的区域内的单元格的引用,例如包含公式的单元格包含批注的单元格。如果找不到匹配的单元格,则会产生错误。...作为示例,考虑以下代码: Dim wb As Workbook Set wb = Workbooks(“SalesData”) 如果打开名为SalesData的工作簿,则此代码可以正常工作。...但是,如果没有打开,则会发生错误。程序可以在无法提前知道是否打开特定工作簿的情况下使用此功能。清单26-3展示了一个函数,该函数在打开时返回对工作簿引用,或者在没有打开时返回Nothing。...程序可以调用此函数并测试其返回。如果此为Nothing,则程序可以采取步骤打开工作簿

6.7K30

工作簿有密码,自动刷新数据,没问题! | PQ重要技巧

- 2 - Excel和PQ的处理 为方便实现动态路径,我们先建立一个路径表,类似于我在以前文章(视频)《批量汇总Excel数据的建议解法-1_同一工作簿内多表》里的做法,这里直接在Excel...: 重要技巧:这里如果直接引用带密码的Excel工作簿,后面的数据处理过程将无法进行,所以,应该先把要加密的Excel工作簿解密,处理好后再重新加密。...或者,先复制一份,去掉密码,做好后续处理再修改为对加密Excel工作簿引用路径。...- 3 - VBA实现解密刷新 通过VBA,我们可以用密码打开数据源工作簿,清除密码,然后刷新查询,刷新完毕后再对数据源工作簿重新加密……是不是很像“把大象放进冰箱里”的三个步骤?...'2、刷新数据 ThisWorkbook.Connections("查询 - 表2").Refresh '3、重新打开工作簿,设置密码并保存关闭 Set wb = Workbooks.Open

3.6K41

Workbook工作簿对象方法(二)

三、工作簿对象activate方法 在使用时可打开多个excel工作簿文件,但只有一个excel文件是活动状态。...四、工作簿对象save方法 保存excel工作簿,在VBA主要是通过workbook工作簿对象的save方法和saveas方法 代码thisworkbook.save 表示保存代码所在的工作簿。...(注意文件名的扩展名的与原文件一致) 在使用saveas方法将工作簿另存为新文件后,将自动关闭原文件,打开新文件,希望继续保留原文件不打开新文件,可以用savecopyas方法。...Workbooks("vba.xlsm").Close 是关闭了单个工作簿vba.xlsm,而workbooks.close则是关闭所有打开工作簿。...3、参数Filename指定保存修改的工作簿名称。 示例保存关闭工作簿 下面以保存并关闭vba.xlsm文件为例。

4.4K20

VBA专题10-20:使用VBA操控Excel界面之隐藏和取消隐藏控件、组和选项卡

可以在启动(当Excel开启时)动态设置,可以在运行时改变它们的(在使元素无效后通过使用VBA回调过程)。...当打开工作簿时执行该回调。 GroupAlignmentExcel组元素包括getVisible属性。通过该属性指向HideAlignmentGroup过程,在打开工作簿使该控件无效时执行。...如果活动工作表不是标准工作表,就隐藏该组,否则该组可见。 注意,当打开工作簿时,创建ribbon对象。编辑VBA代码可能销毁这个新创建的对象。...试图使与销毁对象相关的控件无效是不可能的,唯一的办法是重新创建ribbon对象重新打开工作簿。 当激活图表工作表时,“开始”选项卡的“对齐方式”组被隐藏,如下图所示: ?...当打开工作簿或者当其中一个两个控件被无效时执行该回调。

7.8K20

Workbook工作簿对象方法(一)

大家好,前面介绍了工作簿对象的属性,本节开始介绍工作簿对象的常用方法。这些常用方法可以实现平时用手工的新建、打开、激活、保存excel表等功能。...代码中统计了打开了的workbook对象的数量,并将workbooks.count赋值给变量i。...二、工作簿对象open方法 在使用EXCLE文件时,在VBA代码打开工作簿是通过workbooks集合的open方法。...指定为0将不更新外部引用(链接),指定为1将更新外部引用(链接)但不更新远程引用(链接),指定为2将更新远程引用(链接)但不更新外部引用(链接),指定为3将更新外部引用(链接)。...3、参数ReadOnly可选,如果设置其为True,将在只读模式下打开工作簿。 4、参数Password可选,指定打开受保护工作簿时需要的密码。

5.9K40

Win10:右键新建选项添加启用宏的工作簿.xlsm

文章背景:工作生活涉及到VBA,时常要将Excel文件保存为.xlsm格式。而在右键新建的可选项,一般只有.xlsx文件。下面介绍如何在右键新建选项添加启用宏的工作簿.xlsm。...(6)回到.xlsm文件夹,点击新建的shellnew文件夹,双击FileName打开,将刚才复制的内容填到数值数据并将最后的ecxel12.xlsx 改为 excel14m.xlsm。...(7)在桌面上新建一个空的启用宏的工作簿,将其重命名为:Excel14M.xlsm,然后将该文件移动到以下路径的文件夹:C:\Program Files\Microsoft Office\root\vfs...(8)关闭注册表编辑器界面,回到桌面。在桌面上点击右键,选择新建,此时可以看到在可选项已经有了启用宏的工作簿。...参考资料: [1] 如何在右键添加“新建启用宏的工作簿.xlsm”(https://jingyan.baidu.com/article/066074d62dca1cc3c21cb099.html)

3.5K10

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

excelperfect 本文介绍的自定义函数来源于wellsr.com,以Excel的CELL函数和INFO函数为样板,可直接返回工作工作簿的名称工作簿路径,以及与Excel及其操作环境有关的各种信息...Excel研究\06.2 VBA代码库\09\[VBACodeLibrary09.xlsm]Sheet1 下面的公式来拆分出工作簿路径、工作簿名称和工作表名称。...A1’[示例工作簿.xlsm]Sheet1’!A1。 如果在VBA中使用NameOf函数,那么参数Target必须是Range对象Range(“A1”)Cells(1)ActiveCell。...如果参数Target引用了未打开工作簿,则Target可能会被视为NameOf函数引用(其默认)的单元格无效的Range。...注意,使用Application.Volatile以确保在打开工作簿重新计算单元格时,所有引用NameOf函数的单元格都会得到更新。

4.5K10
领券