【发布时间】:2018-08-27 15:54:31
【问题描述】:
我有一个 MS Acces 数据库。 我有一个命令按钮来导出(TransferSpreadsheet acExport)查询到 Excel 并创建一个图表(Set ch = ws.Shapes.AddChart.Chart)
这是我的代码工作正常:
With ch
.ChartType = xlColumnClustered
.SeriesCollection(2).AxisGroup = 2
.SeriesCollection(2).ChartType = xlLineMarkers
.ChartGroups(1).GapWidth = 69
.Axes(xlValue).MajorGridlines.Delete
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
.SetElement (msoElementLegendBottom)
End with
我需要使用 vba 设置图表的轴最大值和最小值。我需要参考工作表中已有的图表。
任何时候我添加到我的代码中:
.MaximumScale = ActiveSheet.Range("Axis_max").Value
.MinimumScale = ActiveSheet.Range("Axis_min").Value
VBA 显示 ERROR 1004 “Application-defined or Object” 我很困惑为什么我的代码不运行这些指令
如果有人可以指导我,我真的很感激,
一切顺利
【问题讨论】:
-
你能验证
ActiveSheet.Range("Axis_max").Value返回一个数值吗?宁愿从 specific 工作表中提取值,例如Sheets("chart_options").Range("Axis_max").Value -
ja72 感谢您的回复。当我键入时测试您的建议时:ActiveSheet.Range("Axis_max") VBA 显示 ERROR 1004 并且 VBA 将代码行涂成黄色另一方面,当我键入 Sheets("chart_options").Range("Axis_max") 时。值 VBA 显示错误 9 并且 VBA 将代码行涂成黄色
-
好吧,您没有名为“chart_options”的工作表。我只是将这个名称编为一个占位符,用于存储轴缩放信息。您需要使用存储这些值的任何工作表名称。
-
Ja72 当我键入而不是 ("chart_options") 时,"Sheet1" VBA 显示错误 1004 当我键入而不是 ("chart_options") 时,"qryname" VBA 显示错误 1004 感谢您的帮助。
-
如果这是 Access VBA 而不是 Excel VBA,则
ActiveSheet()或Sheets()之类的函数将不起作用。 Access 对电子表格一无所知。您需要参考创建的 Excel 工作簿才能完成这项工作。