- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在开始之前,先介绍一些历史:
在 Excel 中创建 VBA,以打开和读取三 (3) 个 Excel 文件(包括其本身),并将数据输入到 PowerPoint 演示文稿中的图表/表格/图形中。 这个版本运行得很好。由用户表单启动的 VBA
修改了代码以满足传递给我的要求。在一张特定幻灯片中加载图表时,此问题会导致对象“ChartData”的 VBA 方法“激活”错误。该数据是从启动 VBA 的工作表中传输的。
我无法稳定地重新创建此错误,直到我开始保存在脚本询问时启动脚本的 Excel 文件。现在我可以了。
PowerPoint 演示文稿中没有 VBA。
测试此功能的用户第一次遇到错误。我不。不过,无论成功还是失败,我都会在保存 Excel 工作簿后进行进一步的迭代。
发生错误时我注意到的屏幕行为:
仅在我保存启动该过程的 Excel 并在尝试重新创建错误时再次测试该过程后才会发生。
PowerPoint 演示文稿成为“激活”应用程序,而 VBA 在后台运行
发生在同一张幻灯片和图表上(是的,在 PowerPoint 中使用对象标签)。
当发生错误并且我破坏了代码时,我无法使用"file"菜单关闭 PowerPoint 或 Excel。我必须使用右上角的“红色 X”来关闭。功能区和选项卡也无法使用(不对单击事件使用react)。 Microsoft 确实询问了“保存”选项。
我尝试过的:
这是它触发的函数。对于特定图形(即 shapeName),它在 trpChartData.Activate 处出错:
Function insGraphInfo(ByVal numOfSlide As Integer, ByVal shapeName As String, ByVal cellToMod As String, ByVal valToIns As Variant) As Variant
'Inserts data into a CHART TYPE graph
On Error GoTo ERR_INS_GRAPH
Dim trpChart As PowerPoint.Chart
Dim trpChartData As ChartData
Dim trpWkBk As Excel.Workbook
Dim trpChartSheet As Excel.Worksheet
Dim errString As String
Set oPPTSlide = oPPTFile.Slides(numOfSlide)
With oPPTSlide
.Select
End With
Set oPPTShape = oPPTFile.Slides(numOfSlide).Shapes(shapeName)
Set trpChart = oPPTShape.Chart
Set trpChartData = trpChart.ChartData
Debug.Print "Activating: " & shapeName & " in slide number: " & numOfSlide
errString = "Activating: " & shapeName & " in slide number: " & numOfSlide
trpChartData.Activate
Debug.Print shapeName & " activated."
errString = shapeName & " activated."
errString = "Setting Workbook and Worksheet Objects"
Set trpWkBk = trpChartData.Workbook
Set trpChartSheet = trpWkBk.Worksheets(1)
errString = "Inserting Value into appropriate cell)"
With trpChartSheet
.Range(cellToMod).Value = valToIns
End With
insGraphInfo = valToIns
errString = "Refreshing Chart."
With oPPTShape 'Refreshes
.Chart.ChartData.Activate
.Chart.ChartData.Workbook.Close
.Chart.Refresh
End With
Set trpWkBk = Nothing
Set oPPTSlide = Nothing
Set oPPTShape = Nothing
Exit Function
ERR_INS_GRAPH:
MsgBox "An error occurred while: " & errString
Resume Next
End Function
最佳答案
Excel 和 PowerPoint 由两个不同的开发团队创建。
PowerPoint.Chart 与 Excel.Chart
是的,它们看起来相同,您会认为您对它们的属性具有相同级别的访问权限,但这就是您错误的地方。 PowerPoint 版本非常有限。
无论如何,据我所知,当你声明时你错了
Dim trpChartData As ChartData
而不是
Dim trpChartData As PowerPoint.ChartData
正如雷切尔指出的,
trpChartData is declared without a library qualifier and thus defaults to Excel.ChartData
除此之外,您从未使用
清除trpChartData
Set trpChartData = Nothing
我也没有看到您在哪里.Quit
必须已创建的Chart.Workbook
的Excel应用程序。这可以解释为什么后来任务管理器中打开了 Excel 版本。尝试添加这个...
Dim xlApp as Excel.Application
'
'
Set xlApp = .Chart.ChartData.Workbook.Application
'
'
xlApp.Quit
Set xlApp = Nothing
关于vba - 对象 'Activate' 的偶尔 VBA 方法 'ChartData' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32654052/
我收到此错误消息: C:\Users\Rick\Documents\Qt-Übung\testVisualizer\main.cpp:12: error: passing 'const ChartDa
在开始之前,先介绍一些历史: 在 Excel 中创建 VBA,以打开和读取三 (3) 个 Excel 文件(包括其本身),并将数据输入到 PowerPoint 演示文稿中的图表/表格/图形中。 这个版
我正在创建一个 Angular 项目,但在开发这个项目时出现以下错误。我试图解决这个问题,但我没有。 异常:未捕获( promise ):错误:模板解析错误: 无法绑定(bind)到“chartDat
我是一名优秀的程序员,十分优秀!