如何利用VBA实现根据表格的人数生成对应的PPT的数量
附件有两个文件,一个参训人员,一个是PPT的模板。我希望能实现通过VBA简单操作。一:根据参训人员的人数,生成对应数量的灯片。
二:每张灯片显示的名字就是参训人员的名字。
三:灯片上的名字跟参训人员名单的名字一一对应。
我是用来打印出人员名单作为桌牌用的。
如果成功的话,应该跟附件的图片这样。按顺序生成。 送给你一个程序,试试吧!注意要引用,程序里介绍了方法。
[*]'VBE——引用——Microsoft excel 12.0 object library
[*]Private Sub CommandButton1_Click()
[*]
[*] Dim xlApp As Object
[*] Dim xlwbk As Object '定义工作薄对象
[*] Dim xlsht As Object '定义工作表对象
[*] Dim fPath As String '定义文件路径
[*]
[*] '打开对话框选择文件并获取文件路径
[*] With Application.FileDialog(msoFileDialogFilePicker)
[*] If .Show = False Then Exit Sub
[*] fPath = .SelectedItems(1)
[*] End With
[*]
[*] Set xlApp = CreateObject("Excel.Application")
[*] Set xlwbk = xlApp.Workbooks.Open(fPath)
[*] Set xlsht = xlwbk.Worksheets("入选名单")
[*] lrow = xlsht.Range("b1").End(xlDown).Row
[*]
[*] For i = 1 To lrow - 1
[*] 'Set pptSlide = ActivePresentation.Slides.Add(Index:=i + 1, Layout:=ppLayoutBlank)
[*] Set sld = ActivePresentation.Slides(i)
[*] sld.Copy
[*] ActiveWindow.View.Paste
[*]
[*] ActivePresentation.Slides(i + 1).Shapes("Text Box 2").TextFrame.TextRange.Text = xlsht.Cells(i + 2, 2).Value
[*] ActivePresentation.Slides(i + 1).Shapes("Text Box 3").TextFrame.TextRange.Text = xlsht.Cells(i + 2, 2).Value
[*] Next
[*] ActivePresentation.Slides(ActivePresentation.Slides.Count).Delete
[*] Set xlApp = Nothing
[*] Set xlwbk = Nothing
[*] Set xlsht = NothingEnd Sub
复制代码
学会了技术,也要报答需要的人!
页:
[1]