前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >问与答93:如何将工作簿中引用的文件全部复制并汇总到指定文件夹中?

问与答93:如何将工作簿中引用的文件全部复制并汇总到指定文件夹中?

作者头像
fanjy
发布于 2021-02-05 06:40:10
发布于 2021-02-05 06:40:10
2.5K0
举报
文章被收录于专栏:完美Excel完美Excel

Q:我在做一个非常巨大的数据,一个主工作簿,还有非常多个被引用数据的工作簿散布在计算机的很多位置。因为很多数据是临时来的,时间一长,我已经搞不清到底引用了哪些工作簿,有没有办法自动把相关工作簿打包在一起?

A:这只能使用VBA来解决了。

例如下图1所示,在工作簿的工作表Sheet1中有几个单元格分别引用了不同位置工作簿中的数据,我们要把引用的这几个工作簿复制到该工作簿所在的文件夹中。

图1

可以使用下面的VBA代码:

Sub CopyFiles()

Dim rng As Range

Dim rngFormulas As Range

Dim wks As Worksheet

Dim strFind1 As String

Dim iPos1 As Integer

Dim strFind2 As String

Dim iPos2 As Integer

Dim strPath As String

Dim strFile As String

'设置工作表且将该工作表中的公式单元格赋给变量

Set wks = Worksheets("Sheet1")

Set rngFormulas =wks.UsedRange.SpecialCells(xlCellTypeFormulas)

'查找的字符

strFind1 = "\"

strFind2 = "]"

For Each rng In rngFormulas

'确定文件路径

iPos1 = iPos(rng.Formula, strFind1)

If iPos1 = 0 Then

strPath = ""

Else

strPath = Mid(rng.Formula, 3, iPos1- 2)

End If

'确定文件名

iPos2 = iPos(rng.Formula, strFind2)

If iPos2 = 0 Then

strFile = ""

Else

strFile = Mid(rng.Formula, iPos1 +2, iPos2 - iPos1 - 2)

End If

'如果找到且不在当前工作簿文件夹

'则将文件复制到当前文件夹

If strPath <> "" AndstrFile <> "" And strPath <> ThisWorkbook.Path &"\" Then

FileCopy strPath & strFile,ThisWorkbook.Path & "\" & strFile

End If

Next rng

End Sub

'查找字符位置

Function iPos(MyString As String, strFind As String) As Integer

Dim lLength As Long

lLength = Len(MyString)

iPos = InStrRev(MyString, strFind)

End Function

碰到这种情况的朋友,可以试试看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
Q:如何实现根据列表内容查找文件夹中的照片,并将照片剪切或复制到另外的文件夹?如下图1所示,在列C中有一系列身份证号。
fanjy
2020/09/25
3K0
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
从关闭的工作簿中复制数据
假设要将一个工作簿中工作表Sheet2的单元格区域A1:B50的数据复制到当前工作簿的工作表Sheet1相应的单元格区域,可以使用下面的代码:
fanjy
2024/06/18
1520
从关闭的工作簿中复制数据
ExcelVBA汇总多工作簿中指定工作表到新工作簿
哆哆Excel
2023/09/09
4870
ExcelVBA汇总多工作簿中指定工作表到新工作簿
ExcelVBA汇总文件夹中的所有文件指定工作表到一个文件中并进行求和
【问题】:有一个格式固定的表格,我们下发给下面的单位做,上交上来有很多个文件,想要做的是汇总下面各学校交上来的表格并求和
哆哆Excel
2022/10/25
2.3K0
ExcelVBA汇总文件夹中的所有文件指定工作表到一个文件中并进行求和
VBA与数据库——合并表格
在Excel里,如果需要把多个工作表或者工作簿的数据合并到一起,用VBA来做一个程序还是比较容易的,在多个工作簿合并到一个工作簿和多个工作表合并到一个工作表里有过介绍,代码不算很复杂。
xyj
2021/09/10
4.9K2
VBA与数据库——合并表格
VBA 在 Excel 中的常用操作
设置单元格 Value 里使用 Chr(10) 和 Chr(13),分别表示回车、换行。
mzlogin
2020/04/16
3.9K0
VBA代码:拆分工作簿示例——将工作簿中的每个工作表保存为单独的工作簿
只需在要拆分的工作簿中运行上述代码,就可将该工作簿中的所有工作表全部保存为单独的工作簿。
fanjy
2022/06/04
4.2K0
VBA代码:拆分工作簿示例——将工作簿中的每个工作表保存为单独的工作簿
VBA实用小程序71:统计工作簿中的字符数
引言:这是在ozgrid.com论坛中看到的一个VBA程序,特辑录于此,供有兴趣的朋友学习参考。
fanjy
2021/04/21
1.2K0
VBA实用小程序71:统计工作簿中的字符数
ExcelVBA学习之一键打印文件夹中的所有Excel文件
【问题】要打印的Excel文件有几百个,格式有2003版本的也有2016版本的,全部都打印第一个sheet1工作表就可以啦,(如果所在的sheet工作都要打印呢?)。
哆哆Excel
2022/10/25
2.9K0
ExcelVBA学习之一键打印文件夹中的所有Excel文件
Excel实战技巧43: 将多个PDF文件中指定页面合并成一个PDF文件
在《Python实战01:合并多个PDF文件》和《Python实战02:分别合并多个相似文件名的PDF文件》中,我们使用Python代码对PDF文件进行操作来合并PDF文件。其实,使用VBA也能合并PDF文件。
fanjy
2019/07/19
6.7K2
Excel实战技巧43: 将多个PDF文件中指定页面合并成一个PDF文件
Excel VBA编程
在Excel中,数据只有文本,数值,日期值,逻辑值和错误值五种类型。但是在VBA中,数据类型跟Excel不完全相同。根据数据的特点,VBA将数据分为布尔型(boolean),字节型(byte),整数型(integer),单精度浮点型(single),双精度浮点型(double),货币型(currency),小数型(decimal),字符串型(string),日期型(date),对象型等等
全栈程序员站长
2022/08/11
46.1K0
Excel VBA编程
Excel应用实践22: 比较并合并工作表
有两个工作表,均含有相同的数据,但最后一列名称和产品的数量不同,如下图1和图2所示。
fanjy
2019/10/22
7540
Excel应用实践22: 比较并合并工作表
问与答57: 如何实现打开工作簿后自动跳转到当前日期所在列?
Q:在Excel工作表中的第1行的每一列,都是按顺序排列的日期,如何在打开工作簿时自动跳转到当前日期所在的列?如下图1所示,如果今天是2019年4月6日,打开工作簿后自动选择这一列。
fanjy
2019/07/19
1.4K0
问与答57: 如何实现打开工作簿后自动跳转到当前日期所在列?
Excel数据表分割(实战记录)
使用Excel的宏来实现将每10行数据创建为一个新表的功能。以下是一个示例的VBA代码:
Dabenshi
2023/08/24
4470
VBA拆分工作簿示例
如下图1所示,列B中有一系列重复数据,想要将每个重复的数据所在的行放到一个新工作簿并以该数据作为工作簿名。例如,列B中为7890的所有行复制到一个新工作簿并命名为7890.xlsx。
fanjy
2024/06/19
1470
VBA拆分工作簿示例
VBA: 将多个工作簿的第一张工作表合并到一个工作簿中
文章背景: 在工作中,有时需要将多个工作簿进行合并,比如将多份原始数据附在报告之后。一般的操作方法是打开两个工作簿(目标工作簿和待转移的工作簿),然后选中需要移动的工作表,右键单击以后选择“移动或复制”。接下来在新的对话框里面进行设置。
Exploring
2022/09/20
6.3K0
VBA:  将多个工作簿的第一张工作表合并到一个工作簿中
VBA实战技巧10: 复制文件到指定的文件夹并重命名
在工作表的列A中放置着一系列带有完整路径的文件名列表,想要将这些文件移至指定的文件夹并使用列B中相应的名称对其重命名,如下图1所示。
fanjy
2020/12/18
8.5K0
VBA实战技巧10: 复制文件到指定的文件夹并重命名
ExcelVBA获得文件夹中的指定类型的文件存入数组
FileArr = fcnGetFileList(ThisWorkbook.Path, "*.xlsx")
哆哆Excel
2022/10/25
9140
ExcelVBA获得文件夹中的指定类型的文件存入数组
VBA基础:复制格式、选取单元格及复制工作表的示例代码
fanjy
2024/05/25
4430
VBA基础:复制格式、选取单元格及复制工作表的示例代码
VBA实战技巧20:选取不同工作表中不同单元格区域时禁止用户执行复制剪切粘贴操作
在《VBA实战技巧19:根据用户在工作表中的选择来隐藏/显示功能区中的剪贴板组》中,我们讲解了根据用户在工作表中的选择来决定隐藏或者显示功能区选项卡中的特定组的技术。在这里就要派上用场了。
fanjy
2021/03/12
2.4K0
推荐阅读
相关推荐
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档