Excel VBA从另一个工作簿中复制数据而不打开

  • Share This
Hugh West

微软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 希望这对你有帮助!如果你有任何问题、建议或反馈,请在评论区告诉我们。 或者你可以看一下我们的其他文章。 淘宝网 博客!

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.