Table of contents
在 微软Excel , VBA宏 如果我们想在不打开工作簿的情况下从另一个工作簿中复制数据,我们可以通过使用 Excel VBA 在这篇文章中,你将学习 Excel VBA 从另一个工作簿中复制数据而不打开它。
下载实践工作手册
你可以下载工作手册,用它们进行练习。
复制另一个工作簿的数据.xlsm用Excel VBA从另一个工作簿中复制数据而不打开的三种不同方法
有时,我们需要以前某个工作簿中的数据,如果我们很匆忙,不打开工作簿就立即需要数据,我们可以使用 Excel VBA 使用Excel VBA,我们可以快速地从其他工作簿中复制数据,为此,我们只需要知道该特定工作簿的位置。
为了复制数据,我们将使用工作簿名称 产品_细节 而我们要复制数据范围( B4:E10 我们要复制的数据集包含一些产品、它们的销售价格、货物成本和毛利率。 让我们看看从另一个工作簿复制数据的不同标准。
1.用Excel VBA从另一个工作簿中复制工作表数据而不打开
我们可以通过以下方式从一个工作表中复制数据 VBA 为此,我们需要完成以下步骤。
步骤。
- 首先,到 开发商 选项卡。
- 之后,点击 视觉基础 以打开 Visual Basic编辑器 .
- 另一种打开方式是 Visual Basic编辑器 是简单地按下 Alt + F11 .
- 或者,在工作表上点击右键,然后选择 查看代码 .
- 现在,写下 VBA代码 下面。
VBA代码。
Sub Copy_Data_from_Another_Workbook() Dim wb As Workbook Dim newwb As Workbook Dim rn1 As Range Dim rn2 As Range Set wb = Application.ActiveWorkbook With Application.FileDialog(msoFileDialogOpen) .Filters.Clear .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" .AllowMultiSelect = False.Show If .SelectedItems.Count> 0 Then Application.Workbooks.Open.SelectedItems(1) Set newwb = Application.ActiveWorkbook Set rn1 = Application.InputBox(prompt:="选择数据范围", Default:="A1", Type:=8) wb.Activate Set rn2 = Application.InputBox(prompt:="选择目标范围", Default:="A1", Type:=8) rn1.复制rn2 rn2.CurrentRegion.EntireColumn.AutoFit Newwb.Close False End If End With End SubEnd With End Sub
- 最后,通过点击运行代码 运行子 按钮,另一方面,按键盘快捷键 F5 键来运行该代码。
注意: 你不需要修改代码。 只需复制和粘贴代码。
- 通过运行代码 文件打开 窗口会从你的电脑上出现。
- 之后,点击你想收集数据的工作簿。
- 然后,点击 认可 按钮。
- 现在,通过拖动范围选择源文件中的数据 B5:E10 然后点击 认可 .
- 在选择了数据范围后,现在选择你想放置数据的目标范围。
- 并且,点击 认可 .
- 最后,这将关闭源文件,数据将复制到目标文件上。
阅读更多。 Excel VBA:复制范围到另一个工作簿
类似读物
- 如何使用VBA从剪贴板粘贴到Excel?
- 禁用Excel中的复制和粘贴而不使用Macros(有2个标准)
- 如何在Excel中复制排除隐藏的行(4种简单方法)
- Excel VBA根据标准将行复制到另一个工作表的方法
- 如何使用VBA在Excel中只粘贴没有格式化的数值
2.用VBA从另一个工作簿中复制一个数据范围而不在Excel中打开
通过使用 VBA 我们必须按照下面的步骤来完成这个任务。
步骤。
- 要开始,请导航到 开发商 选项卡上。
- 第二,打开 Visual Basic编辑器 通过点击 视觉基础 或按 Alt + F11 .
- 或者,只需在工作表上点击右键,选择 查看代码 以打开 Visual Basic编辑器 .
- 之后,写下 VBA代码 在那里。
VBA代码。
Sub CollectData() Dim rgTarget As Range Set rgTarget = ActiveSheet.Range("B2:E10") '将复制的数据放在哪里。 rgTarget.FormulaArray = "='D:\[Product_Details.xlsx]Sheet1'! $B$4:$E$10" rgTarget.Formula = rgTarget.Value End Sub
- 在这里,用以下方式运行代码 运行 子 或按键盘快捷键 F5 来运行该代码。
注意: 你不需要修改代码,你所需要做的只是根据你的源数据改变范围。
- 最后,数据现在被从另一个工作簿复制到活动工作簿中。
阅读更多。 从一个工作表复制和粘贴到另一个工作表的宏程序(15种方法)
Excel VBA通过使用命令按钮从另一个工作簿中复制数据而不打开
我们可以从另一个工作簿中复制数据,方法是使用 "工作簿 "上的命令按钮。 VBA 为了实现这一目标,我们必须遵循下面的步骤。
步骤。
- 首先,要把一个 指挥按钮 ,请到 开发商 标签。
- 第二,点击 插入 下拉菜单。
- 第三,点击 指挥按钮 .
- 我们把 产品 细胞上 A1 因为它是我们的源文件工作表的名称。 我们还设置了 指挥按钮 我们现在创建了表,我们只需要另一个工作簿中的数据。
- 同样的道理,导航到 开发商 选项卡上。
- 接下来,点击 视觉基础 或按 Alt + F11 来启动 Visual Basic编辑器 .
- 你也可以打开 Visual Basic编辑器 通过在工作表上点击右键,选择 查看代码 .
- 现在,写下 VBA 码下。
VBA代码。
Private Sub CommandButton1_Click() Dim sourceworkbook As Workbook Dim currentworkbook As Workbook Set currentworkbook = ThisWorkbook Set sourceworkbook = Workbooks.Open("D:\Products_Details.xlsx") sourceworkbook.Worksheets("Product").Range("B5:E10").Copy currentworkbook.激活 currentworkbook.Worksheets("Sheet3").激活 currentworkbook.Worksheets("Sheet3") Cells(4, 1) .选择 ActiveSheet.粘贴sourceworkbook.Close Set sourceworkbook = Nothing Set currentworkbook = Nothing ThisWorkbook.Activate Worksheets("Sheet3").Activate Worksheets("Sheet3").Range("A2").Select End Sub
- 然后,按以下步骤保存代码 Ctrl + S .
注意: 你可以复制这些代码,你只需要改变文件路径和数据范围。
- 而且,最后,如果你点击 命令按钮1 这将从另一个工作簿中复制数据,而无需打开它。
阅读更多。 根据标准将数据从一个工作簿复制到另一个工作簿的宏程序
总结
上述标准是从另一个工作簿中复制数据的准则,无需用 Excel VBA 希望这对你有帮助!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!