excel - Excel图表范围基于另一个工作表中单元格中的值
问题描述
我有一个包含多个 Pareto 图的工作表(仪表板),另一个工作表(数据)通过标准 $A$1:$B$2 格式的公式为每个图表带来范围。
如何使用“仪表板”中帕累托图中的“数据”表中的这些范围?图表名称在数据 B4 图表范围在数据 C4 我有每个图表的代码,用于以下故障排除是单个图表中的一个
Sub FirstChart()
Dim FirstChartName As String
Dim FirstChartRange As Range
FirstChartName = Sheets("Data").Range("B4")
Set FirstChartRange = Worksheets("Data").Range(Sheets("Data").Range("C4").Value)
Sheets("Dashboard").ChartObjects("FirstChart").Activate
ActiveChart.ChartArea.Select
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = FirstChartName
ActiveChart.SetSourceData Source:=FirstChartRange
End Sub
提前致谢。
更新:感谢@coross24 和@WIL。我已经根据他们对https://gofile.io/d/8HfjQv的回答上传了文件
解决方案
在引用 FirstChartRange 参数时,您似乎有些偏离。由于变量被绑定为范围,您所做的是将单元格 C4 引用为范围,而不是该范围内的字符串,然后尝试在该单元格内绘制字符串值!运行您的代码时,我遇到了类型错误。
我已经修改了上面的代码,并在我的工作簿中的单个图表上对其进行了测试,它似乎工作正常。我还提前绑定了您的工作表,因此您不必在代码中重复自己。
Sub FirstChart()
Dim FirstChartName As String
Dim FirstChartRange As String
Dim shtData As Excel.Worksheet
Dim shtDashboard As Excel.Worksheet
Dim chart As Excel.chart
Set shtData = ThisWorkbook.Sheets("Data")
Set shtDashboard = ThisWorkbook.Sheets("Dashboard")
' get chart name
FirstChartName = shtData.Range("B4").Value2
' get chart range
FirstChartRange = shtData.Range("C4").Value2
' change data for first chart
Set chart = shtDashboard.ChartObjects("FirstChart").chart
With chart
.HasTitle = True
.ChartTitle.Text = FirstChartName
.SetSourceData shtData.Range(FirstChartRange)
End With
End Sub
祝你好运!
推荐阅读
- gcc - 如何将主干补丁应用到 mingw-w64 8.1
- javascript - 这个纯 JavaScript 代码中的 $$ 函数是如何使用的?
- python - 即使语句为 True,我的函数也没有返回 True
- python - 用于转换函数或方法的输入和/或输出的 Python 装饰器
- sql-server - 如何按用户价格订购书籍
- python - 在 Pandas Python 中将 sting 列表映射到 0
- python - 用于家庭作业的 Python 中的回溯错误
- react-native - 从 react native 发送 OSC 消息
- c# - 为什么我不能返回我在数组中搜索的值的索引?
- java - 如何分配列表
到 Java 中的 Project[]?