
本次案例来自网友提问:需要从600个Excel文件中导出每个文件中的2个,之前由于时间原因,回复比较简单没有给出具体实现方法,今天花时间整理写成图文,希望小伙伴们都可以学会。
一、 数据模拟
为了更加真实的还原提问者遇到的问题,我们需要准备600个且都包含有2个的Excel文件。一两个文件我们可以手动新建就可以了,这可是600个文件呐!
别担心,既然我们是用VBA来解决问题,解决这种事情重复机械的劳动,当然不是什么难事。我们用以下两个代替,放到当前文件目录下,分别命名为test1png和test2png,模拟数据时将test1png插入到第一个表,test2png插入到第二个工作表。
test1png
test2png
分步 *** 作过程:
第一步:新建一个Excel文件,将它另存为xlsm格式。
启用宏工作簿
第二步:打开新建好的xlsm文件,按快捷键ALT+F11进入VBE界面。
进入VBE界面
第三步:在VBE工程种插入一个模块。
插入模块
第四步:在刚刚新建的模块中粘贴以下代码。
Sub 生成600个含的Excel文件()
'关闭刷新,防止屏幕抖动
ApplicationScreenUpdating = False
'定义变量i
Dim i As Integer
'定义i从1循环到600
For i = 1 To 600
'新增一个工作簿
WorkbooksAdd
'往工作簿的第一个工作表中插入test1png
ActiveWorkbookSheets(1)PicturesInsert(ThisWorkbookPath & "\test1png")Select
'往工作簿的第二个工作表中插入test2png
ActiveWorkbookSheets(2)PicturesInsert(ThisWorkbookPath & "\test2png")Select
'将工作簿存储到当前路径下
ActiveWorkbookSaveAs ThisWorkbookPath & "\" & i & "xlsx"
'关闭工作簿
ActiveWorkbookClose
'继续循环新建其他工作簿
Next
'恢复屏幕刷新
ApplicationScreenUpdating = True
'处理完成给出提示
MsgBox "600个含的Excel文件生成完成!", vbInformation, "提示信息"
End Sub
第五步:执行VBA代码,生成我们需要的600个Excel文件。
执行VBA代码
连贯 *** 作演示:
*** 作演示
二、 导出
600个案例文件已经准备好了,接下来就是导出文件中的。
解决思路:
1 一个个的找出当前目录下的所有Excel文件。
2 打开找到的Excel文件。
3 一个个的找出Excel文件中的工作表。
4 找出工作表中的所有对象。
5 把找到的每一个导出到当前目录下。
如果文件不多的情况下,按上面的思路手动 *** 作导出也是可以的,其实通过VBA来解决问题也是要先把复杂问题进行简单化,一步步进行分解问题,最终形成完整解决方案。VBA代码使用方式在上面数据准备过程中已经有详细描述了,本次我们直接来运行下代码,实现导出文件中的。
Sub 导出当前路径下工作簿中的()
Dim wk$ '定义为工作簿文件
Dim i As Integer '定义工作簿中的工作表数量
Dim ii As Integer '定义为工作表中的对象个数
'关闭刷新,防止抖动
ApplicationScreenUpdating = False
'遍历第一个工作簿文件
wk = Dir(ThisWorkbookPath & "\xlsx")
'遍历到的文件名不等于空的情况下
Do While wk <> ""
'如果文件名称和当前的名称是不一样的。
If wk <> ThisWorkbookName Then
'打开遍历到的工作簿
WorkbooksOpen (ThisWorkbookPath & "\" & wk)
'对打开的工作簿文件进行以下 *** 作
With ActiveWorkbook
'循环出工作簿中的每一个工作表
For i = 1 To SheetsCount
'循环出工作表中的每一个对象shape
For ii = 1 To Sheets(i)ShapesCount
'临时变量,统计shape的个数
k = k + 1
'复制shape对象
Sheets(i)Shapes(ii)Copy
'创建一个图表对象,宽高与与对象保持一致
With Sheets(i)ChartObjectsAdd(0, 0, Sheets(i)Shapes(ii)Width, Sheets(i)Shapes(ii)Height)Chart
'把插入进去
Paste
'通过图表对象的导出方法,把导出到当前目录下
Export ThisWorkbookPath & "\" & wk & "_" & k & "png"
'删除图表
ParentDelete
End With
Next
Next
'关闭打开的工作簿
Close False
End With
End If
'继续遍历下一个工作簿
wk = Dir
Loop
'开启屏幕刷新
ApplicationScreenUpdating = True
End Sub
导出演示
做了个演示文稿,中间做了一张幻灯片,用来播放一段**。这个**需要在好几个幻灯片中都要展示引用,又不想多做几张这个**的幻灯片,就开始想能不能用这个一张幻灯片来解决所有问题呢?如果用ppt中默认的几种超级链接方式,都达不到预定的效果,那就是**播放后,点一下这张幻灯片上唯一的一个按钮必须返回刚才的幻灯片。我也看到了,很多人在设计时,为了解决这个问题,在有**的幻灯片下,竟然设置了多个按钮,以返回不同的上一个幻灯片。我通过研究,终于发现,用vba可以轻松解决这个问题,即使是50张幻灯片都来引用也没有问题。
放上制作好的:
[转载]巧用vba在ppt中灵活切换幻灯片X
步骤:1制作好,多次引用的那张幻灯片。(我的是放**的那张,就是第13张幻灯片)记住这张幻灯片的序号,在普通视图下看,即上图左边图圈1那部分序号。
2利用控件箱,在这张幻灯片上放一个按钮,双击这个按钮,进入vba代码编辑窗口,把下面这段代码粘入其中:
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide m
End Sub
也就是上图中的3部分。这段代码的意思就是单击按钮时,切换到第m张幻灯片。m的值在其他引用的按钮中设置。
3通过控件箱,分别在另外几张你需要引用这个**的幻 灯片上,插入按钮。并双击按钮进入vba代码编辑窗口,给每个按钮分别写入代码。当然你可以把下面的代码粘入即可。
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide 13
m = 5
End Sub
这段代码的意思就是单击按钮时,切换到第13张幻灯片,同时m设置为5。第13张幻灯片就是我的有**的那张。
在每个按钮的代码中,你需要改变的只是m后的数字。如何改动呢很容易,这个按钮在第几张幻灯片上,这个数字就设置为几(这个数字在普通视图下很容易看到,如圈1中的数字)。目的是让放置**的那个多次引用的幻灯片,一会能通过这个数字返回来。
另一个按钮的代码:
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide 13
m = 8
End Sub
4插入一个类模块,在里面声明一个公共变量m,可以在各段代码中引用这个变量。
即上图中标6的地方。
你可以把下面这段代码复制使用。
Public m As Integer
好了,下面你就可以放映你的演示文稿了,尽情切换吧!好爽!哦,对了,为了不影响最后的美观,你可以把这个公共引用的幻灯片设置为隐藏。
当然,如果你不想用vba来 *** 作,也可以在多次引用的这张幻灯片上,放一个图形,然后通过“动作”设置,来链接到“最近的幻灯片”上,就可以了。做了个演示文稿,中间做了一张幻灯片,用来播放一段**。这个**需要在好几个幻灯片中都要展示引用,又不想多做几张这个**的幻灯片,就开始想能不能用这个一张幻灯片来解决所有问题呢?如果用ppt中默认的几种超级链接方式,都达不到预定的效果,那就是**播放后,点一下这张幻灯片上唯一的一个按钮必须返回刚才的幻灯片。我也看到了,很多人在设计时,为了解决这个问题,在有**的幻灯片下,竟然设置了多个按钮,以返回不同的上一个幻灯片。我通过研究,终于发现,用vba可以轻松解决这个问题,即使是50张幻灯片都来引用也没有问题。
放上制作好的:
[转载]巧用vba在ppt中灵活切换幻灯片X
步骤:1制作好,多次引用的那张幻灯片。(我的是放**的那张,就是第13张幻灯片)记住这张幻灯片的序号,在普通视图下看,即上图左边图圈1那部分序号。
2利用控件箱,在这张幻灯片上放一个按钮,双击这个按钮,进入vba代码编辑窗口,把下面这段代码粘入其中:
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide m
End Sub
也就是上图中的3部分。这段代码的意思就是单击按钮时,切换到第m张幻灯片。m的值在其他引用的按钮中设置。
3通过控件箱,分别在另外几张你需要引用这个**的幻 灯片上,插入按钮。并双击按钮进入vba代码编辑窗口,给每个按钮分别写入代码。当然你可以把下面的代码粘入即可。
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide 13
m = 5
End Sub
这段代码的意思就是单击按钮时,切换到第13张幻灯片,同时m设置为5。第13张幻灯片就是我的有**的那张。
在每个按钮的代码中,你需要改变的只是m后的数字。如何改动呢很容易,这个按钮在第几张幻灯片上,这个数字就设置为几(这个数字在普通视图下很容易看到,如圈1中的数字)。目的是让放置**的那个多次引用的幻灯片,一会能通过这个数字返回来。
另一个按钮的代码:
Private Sub CommandButton1_Click()
SlideShowWindows(1)ViewGotoSlide 13
m = 8
End Sub
4插入一个类模块,在里面声明一个公共变量m,可以在各段代码中引用这个变量。
即上图中标6的地方。
你可以把下面这段代码复制使用。
Public m As Integer
好了,下面你就可以放映你的演示文稿了,尽情切换吧!好爽!哦,对了,为了不影响最后的美观,你可以把这个公共引用的幻灯片设置为隐藏。
当然,如果你不想用vba来 *** 作,也可以在多次引用的这张幻灯片上,放一个图形,然后通过“动作”设置,来链接到“最近的幻灯片”上,就可以了。
VBA是非常流行的应用程序开发语言VISUAL BASIC的子集。在ppt中想要实现编程效果,我们可以使用vba实现。那么具体怎么 *** 作呢下面就是PPT使用VBA代码编程的教程,一起了解一下。
1、打开ppt,在上面的工具栏中找到开发工具并点击。
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
2、点击过后就可以看到VBA命令按钮了。(如图)
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
3、点击VBA命令按钮,会d出一个窗口。(如图)
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
4、单击演示文稿找到插入中的用户窗体并点击,在这里就可以加入各种类型了。
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
5、完成后,我们就可以找到工具栏中的“||”图标进行运行测试。
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
6、测试过后,我们就可以在工具栏中找到各种命令了。
PPT使用VBA代码编程的教程 PPT使用VBA代码编程的方法
上面就是PPT使用VBA代码编程的教程
启用宏的 PowerPoint 演示文稿 文件扩展名为 pptm、可以包含 VBA 代码的演示文稿。 启用宏的 PowerPoint 放映 文件扩展名为 ppsm、包含预先核准的宏的演示文稿,您可以从演示文稿运行宏。 PowerPoint 启用宏的模板 文件扩展名为 potm、包含预先核准的宏的模板,您可以将宏添加到模板中,并在演示文稿中使用。 直接保存成PPT或PPTX是不保存宏的,我以前也碰到过的
例文件没看过,懒得看。说下思路吧。
建立个数据集,把桌号都存进去(可以不连续)。数据集比如说有50个数,随机选出个1~50间的数,找到这个数在数据集中对应的桌号。在数据集中删除这个桌号,数据集变成49个数了。下次就抽取1~49间的数……
可以先把PPT的宏代码写好,然后再某处插入一个控件,比如一个“矩形”,然后右键单击矩形,选择“动作设置(A)”“,在动作设置对话框中选择“运行宏(M)”,再在下拉框中选择刚才写好的宏的名称就可以了
以上就是关于如何使用VBA调用EXCEL里面的图片和数据生成PPT里面的图片和数据全部的内容,包括:如何使用VBA调用EXCEL里面的图片和数据生成PPT里面的图片和数据、求教 请问在PPT中能否通过在VBA里写宏实现切换到某页幻灯片时,自动播放受触发器控制的动画、一个PPT中放入多张带VBA编程的PPT,保存后VBA不可用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)