Excel使用VBA批量插入Object

前言

老姐让我帮她写个程序,要在Excel中插入附件啥的,不然她五一放假就要加班了,所以我就在加班的期间查了查资料,一开始理解错题意,以为是要把PDF转换为Excel,还想着要用Python来写,后面发现,是要插入附件,可以用VBA来写。

由于微软Office软件的普及,人们常见的办公软件Office软件中的Word、Excel、Access、Powerpoint都可以利用VBA使这些软件的应用更高效率,例如:通过一段VBA代码,可以实现画面的切换;可以实现复杂逻辑的统计(比如从多个表中,自动生成按合同号来跟踪生产量、入库量、销售量、库存量的统计清单)等。 (百度百科)

环境配置

为了使用VBA,我们需要开启Excel的开发者工具

文件 -> 选项 - > 自定义功能区 -> (右侧的)主选项卡 -> 勾选开发工具 -> 确定

回到主界面,点击

开发工具 -> 宏 -> 宏名 -> 输入 batchImportObject -> 创建 -> 进入 Visual Basic代码编辑区

复制粘贴一下代码,全选覆盖掉刚才创建的代码

Sub batchImportObject()
'Columns(1).Delete
On Error Resume Next
Dim f As String
Dim file() As String
Dim i, k, x
x = 1
i = 1: k = 1
ReDim file(1 To i)
file(1) = InputBox("请输入要查找的文件夹:") & "\"
Do Until i > k
f = Dir(file(i), vbDirectory)
Do Until f = ""
If InStr(f, ".") = 0 Then
k = k + 1
ReDim Preserve file(1 To k)
file(k) = file(i) & f & "\"
End If
f = Dir
Loop
i = i + 1
Loop
For i = 1 To k
f = Dir(file(i) & "*.*")
Do Until f = ""
'Range("a" & x) = f
ActiveSheet.OLEObjects.Add(Filename:=file(i) & f, _
Link:=False, _
DisplayAsIcon:=True, _
IconIndex:=0, _
Left:=10, Top:=10 + x, _
IconLabel:=file(i) & f).Select
x = 50 + x
f = Dir
Loop
Next
End Sub

复制代码

而后保存文件,保存文件的具体步骤请看 这里

大体的意思就是保存的文件类型需要更改为带有宏的文件

之后回到Excel中,点击

宏 -> 选择 batchImportObject -> 在弹出的输入框中输入所需要导入文件的文件夹路径 -> 等待或卡顿一段事件 -> 理论上就大功告成了

注意

  • 文件夹下的所有文件都会被导入,所以请保证都是需要导入的文件*
  • 如果导入文件过大或者数量太多,程序可能无响应,等待一段时间应该就可以了 *

转载于:https://juejin.im/post/5ae67964f265da0ba351d316

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值