一、 在Excel做动态图 首先我们需要在Excel中先利用控件制作一个动态的图表,通过点击控件图表能发现动态变化,有2个关键的位置 A8:A9这个位置是我们下拉中的内容 C9这单元格是下拉的结果
一、 在Excel做动态图首先我们需要在Excel中先利用控件制作一个动态的图表,通过点击控件图表能发现动态变化,有2个关键的位置 A8:A9这个位置是我们下拉中的内容 C9这单元格是下拉的结果 所有的动态效果,都是根据C9中的值来做变化的,做法我们之前讲过,大家不过可以翻看下之前的文章,或者看下我的课程,就不再赘述了。
二、 准备工作1. 将图表中的控件删掉,等下会在PPT中重新构建 2. 点击视图找到【网格线】不勾选网格线,让图表更加简洁一些 3. 选择图表所在的单元格区域复制,一定不要直接复制图表,这一点非常重要 4. 下拉控件的内容A8:A9这个区域,以及下拉结果C9位置需要固定
三、 复制到PPT在Excel表格中粘贴后,我们需要来到PPT中,在左上角点击【开始】找到粘贴,然后在粘贴中找到【选择性粘贴】我们需要在新的窗口中选择【Excel工作表对象】然后点击确定 选择Excel工作表对象,其实就是将整个Excel文件都粘贴到了PPT中,我们用鼠标双击粘贴的形状,就可以显示一个EXCEL的窗口。
四、 设置代码首先我们需要点击【文件】最下方点击【选项】来调出PPT选项,点击【自定义功能区】,在右侧找到【开发工具】勾选一下,点击确定 随后点击【开发工具】在控件中找到【组合框】,窗体创建后,用鼠标双击组合框,然后复制下方的代码直接做粘贴,代码我们需要修改三处,就是在代码中可修改的区域,需要设置为自己表格的工作表名称,下拉的内容,以及结果单元格的位置 Dim Wb As Object, Sh As Object ' ========== 可修改的配置区域 ========== Const DATA_RANGE As String = "A9:A10" ' 组合框数据源区域 Const OUTPUT_CELL As String = "C10" ' 结果输出单元格 Const SHEET_NAME As String = "演示" ' 工作表名称 ' ===================================== ' 初始化组合框 Private Sub InitializeComboBox() On Error GoTo ErrorHandler ' 获取嵌入的Excel对象 Set Wb = GetExcelWorkbook() If Wb Is Nothing Then Exit Sub ' 获取工作表 Set Sh = Wb.Worksheets(SHEET) ' 清空并填充组合框 With ComboBox1 .Clear ' 自动计算数据范围 Dim dataRange As Object Set dataRange = Sh.Range(DATA_RANGE) Dim cell As Object For Each cell In dataRange If Not IsEmpty(cell) Then .AddItem cell.Value End If Next cell ' 设置下拉显示行数 If .ListCount > 0 Then .ListRows = .ListCount .ListIndex = 0 ' 选择第一项 ' 将初始值写入输出单元格 Sh.Range(OUTPUT_CELL) = .Value Else MsgBox DATA_RANGE & "区域没有数据,请检查Excel文件" End If End With Exit Sub ErrorHandler: MsgBox "初始化组合框时出错: " & Err.Description, vbExclamation End Sub ' 安全获取Excel工作簿对象 Function GetExcelWorkbook() As Object On Error GoTo ExcelError Dim shp As Shape For Each shp In Me.Shapes If shp.Type = msoEmbeddedOLEObject Then If shp.OLEFormat.ProgID Like "*Excel*" Then Set GetExcelWorkbook = shp.OLEFormat.Object Exit Function End If End If Next shp ExcelError: MsgBox "未找到嵌入的Excel对象" & vbCrLf & _ "请确保:" & vbCrLf & _ "1. 已嵌入Excel对象" & vbCrLf & _ "2. 对象未被删除或损坏", vbExclamation Set GetExcelWorkbook = Nothing End Function ' 组合框值改变事件 Private Sub ComboBox1_Change() On Error GoTo ChangeError ' 确保对象引用有效 If Wb Is Nothing Then Set Wb = GetExcelWorkbook() If Wb Is Nothing Then Exit Sub End If If Sh Is Nothing Then Set Sh = Wb.Worksheets(SHEET_NAME) End If ' 将选择的值写入Excel的输出单元格 If ComboBox1.ListIndex >= 0 Then Sh.Range(OUTPUT_CELL) = ComboBox1.Value End If Exit Sub ChangeError: MsgBox "更新Excel数据时出错: " & Err.Description, vbExclamation End Sub ' 幻灯片开始放映时初始化 Private Sub Slide_ShowBegin() InitializeComboBox End Sub ' 可选:点击组合框时确保初始化 Private Sub ComboBox1_GotFocus() If ComboBox1.ListCount = 0 Then InitializeComboBox End If End Sub ' 清理资源 Private Sub Slide_ShowEnd() Set Sh = Nothing Set Wb = Nothing End Sub
五、 放映到此为止就设置完毕了,我们只要按下F5键,全屏显示PPT就可以在放映的过程中,通过点击控件,来让图表实现动态的变动,通过这个特性,也可以在PPT中实现类型数据看板的效果,大家有兴趣的可以试一下。
|
2025-02-04
2025-02-12
2025-02-04
2025-02-03
2025-02-12