更改图表数据为每选定单元格
如果要使仪表板的图表根据所选选项更改其数据,则可以使用VBA中的事件。是的,可以做到。我们不需要任何下拉菜单,切片器或组合框。我们将使单元格可单击并更改数据以从所选单元格创建图表。
请按照以下步骤在excel中制作动态图表,该图表根据单元格选择而变化。
步骤1:准备工作表中的数据作为图表的源。
在这里,我有一些来自工作表中不同区域的示例数据。我将其命名为源数据。
步骤2:一次在另一张纸上获取一个地区的数据。
-
现在插入一张新纸。适当命名。我将其命名为“仪表板”。
-
将所有月份复制到一栏中。在月份旁边写下一个地区的名称。
-
现在我们要提取单元格D1中区域的数据。我们希望数据随着D1中区域的变化而变化。为此,我们可以使用`link:/ lookup-formulas-vlookup-with-dynamic-col-index [双向查询]`。
由于我的源数据在源数据表的A2:D8中。我使用以下公式。
= Data’!$A$2:$D$8, Data’!$A$1:$D$1,0)) |
这里。
-
使用此数据在仪表板上插入图表。我使用一个简单的折线图。如果不想显示图表,请隐藏图表的来源。
现在,当您在D1中更改区域名称时,图表将相应更改。下一步是在指定单元格中选择一个选项时,更改D1中的区域名称。
步骤3:在指定范围内选择区域名称时更改区域。 *在一个区域中写入所有区域的名称,在区域A2:A4中写入它们。
-
右键单击“仪表板”工作表名称,然后单击“查看代码”
-
现在在VB编辑器中编写以下代码。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("A2:A4")) Is Nothing Then Range("A2:A4").Interior.ColorIndex = xlColorIndexNone Dim region As Variant region = Target.value On Error GoTo err: Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select Target.Interior.ColorIndex = 8 End If err: End Sub
完成了。现在,只要您在A2:A4范围内选择一个单元格,它的值就会分配给D1,并且图表数据也会相应地更改。
我已经在下面解释了此代码的工作方式。您可以理解它并根据需要进行更改。我提供了本示例中在这里使用的帮助主题的链接。因此,请检查一下。
代码如何工作?
Excel的事件worksheet event”“ SelectionChange”来触发事件。
If Not Intersect(Target, Range("A2:A4")) Is Nothing Then
这条线将焦点设置到A2的范围:A4,使SelectionChange事件时,选择在范围A2仅触发:A4。如果选择在范围内A2如果和end之间的代码将只运行:A4。现在,您可以根据需要进行设置,以使图表变得动态。
Range("A2:A4").Interior.ColorIndex = xlColorIndexNone
此行将范围A2:A4的颜色设置为空。
region = Target.value On Error GoTo err:
在以上两行中,我们获取变量区域中所选单元格的值,并忽略发生的任何错误。除非确定要忽略发生的任何错误,否则不要使用“ On Error GoTo err:”行。我使用它来避免在选择多个单元格时出错。
Select Case region Case Is = "Central" Range("D1").value = region Case Is = "East" Range("D1").value = region Case Is = "West" Range("D1").value = region Case Else MsgBox "Invalid Option" End Select
在上述各行中,我们使用Excel的“ link:/ general-topics-in-vba-vba-select-case-nested-if-else-if-statements [Select Case Statement]”设置值范围D1。
Target.Interior.ColorIndex = 8 End If err: End Sub
在End If语句之前,我们更改所选选项的颜色,使其突出显示。然后,If语句结束,并且err:标记开始。
如果在选择语句期间发生任何错误,则On Error语句将跳转到该标记。
在下面下载工作文件。
相关文章:
在Microsoft Excel中使用VBA的嵌入式图表事件 **嵌入式图表事件可使您的图表比普通图表更具交互性,动态性和实用性。为了启用图表上的事件,我们…
`link:/ events-in-vba-the-events-in-excel-vba [Excel VBA中的事件] || * Excel中有七种事件。每个事件涉及不同的范围。应用程序事件在工作簿级别处理。在工作表级别上的工作簿。范围级别的工作表事件。
`link:/ events-in-vba-the-worksheet-events-in-excel-vba [Excel VBA中的工作表事件] ** |当您希望在指定事件发生时运行宏时,工作表事件非常有用工作表。
在Microsoft Excel中使用VBA的工作簿事件 ||工作簿事件适用于整个工作簿。由于所有工作表都是工作簿的一部分,因此这些事件也适用于工作表。
防止自动宏/ eventmacro在Microsoft Excel中使用VBA执行] * |为防止运行auto_open宏,请使用shift键。
在Microsoft Excel中使用VBA绘制对象事件 **图表是复杂的对象,您已附加了几个组件。为了制作图表事件,我们使用类模块。
热门文章:
`link:/ keyboard-formula-shortcuts-50-excel-shortcuts可提高您的生产率[50 Excel快捷方式可提高生产率]] |更快地完成任务。这50个快捷键将使您在Excel上的工作更加快捷。
link:/ vlookup-functions的公式和函数介绍[Excel中的VLOOKUP函数]
|这是excel中最常用和最受欢迎的功能之一,用于从不同范围和工作表中查找值。
link:/ tips-countif-in-microsoft-excel [Excel 2016中的COUNTIF]
|使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。
Countif功能对于准备仪表板至关重要。
link:/ excel-formula-and-function-excel-sumif-function [如何在Excel中使用SUMIF函数]
|这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。