首页 > 解决方案 > Excel 中的地图:如何通过从下拉菜单中选择地理区域的名称来突出显示该地理区域?

问题描述

目标是从 Excel 的下拉列表中选择一个州名,并在 Excel 中的美国地图上更改该州的颜色。我已经创建了地图,并设置了我认为需要的所有参考表,但它不起作用。我在网上找到的最有用的资源是这个https://www.youtube.com/watch?v=RfjCkHK2TXM。需要注意的是,我在 Mac 上工作,并使用 Excel 16.4 版。与视频不同的是,我没有在州周围绘制边界,而是从地图中选择每个州并用州名标记它们。

这是我使用的宏代码:

Sub Shading()


    For i = 2 To 53
    Range("actReg").Value = Range("Data!A" & i).Value
    ActiveSheet.Shapes(Range("actReg").Value).Select
    Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("actRegCode").Value).Interior.Color

    Next i


    Range("A6").Select
End Sub

感谢您对如何进行这项工作的任何见解!

标签: excelvbamaps

解决方案


正如我在评论中所说,我将提供一个适用于 Office365/Windows 10 的答案,希望有足够的相似之处让您适应您的需求。要使这对您有用,必须满足以下两个基本假设:

  1. Excel for Mac 2D 地图图表是您用来创建地图的工具,并且该图表由数据系列提供信息,并且
  2. 您的唯一目的是在地图上突出显示您通过下拉列表选择的州

如果这些事情中的任何一个是错误的,请不要继续阅读。

第 1 步 - 设置数据系列

我对你的布局一无所知,所以我将在这里描述我的布局——只需更改它以匹配你所拥有的。

单元格中的标题A1 B1和从下到C1 下的状态列表(在我的情况下,也是下拉单元格的“来源”)从下到下的值列表。下拉单元格A2A51B2B51C2

在单元格B2中,使用以下公式覆盖数据:=IF(A2=$C$2, 0, 1)注意绝对引用$C$2。将此公式复制到列下B- 覆盖所有现有数据。

这会做什么?无论您通过下拉列表选择哪个州0,其数据系列中都会有一个 ——所有其他州都将有一个1.

第 2 步 – 格式化数据系列

右键单击地图上的任何状态并选择Format Data Series(或者您在 Excel for Mac 2D 地图图表上执行此操作)选择Series ColorMinimum-Lowest Value将颜色更改为红色(或您的选择) 在Maximum-Highest Value将颜色更改为蓝色(或您的选择)

预期结果

现在,每当您通过下拉菜单更改状态时,都会将 a0放入该状态的数据系列中 - 这是系列中的最小值,而 a1在所有其他状态中 - 这是系列中相同的最大值。选择的状态将是红色的——所有其他的都是蓝色的。

让我知道事情的后续。


推荐阅读