分享 | 可以自动着色的地图教程终于来了!

  • 着色可以自由配置
  • 可以根据省份来着色
  • 可以根据数值大小来自由着色
  • VBA一键处理!
素材准备(文末下载)
一张矢量地图,每个省份都可以编辑的地图,网上比较难找,一般就上找到了也有很多问题,不是边界问题,就是每个省份没有命名,自己处理非常麻烦!当然你有兴趣可以自己有使用自由图形慢慢编辑!
根据省份着色
我们值需要在省份后面根据实际情况配置好一列颜色,就会把对应的省份自动填充成对应的颜色!
着色VBA源码
    '公众号:Excel办公实战'作者:E精精'功能:地图着色'日期:20210507'------------------------------------------------Sub 地图作色() '省份所在列-可自由配置 Const strCol As String = "I" Dim i As LongWith Sheet1 maxRow = .Cells(Rows.Count, strCol).End(3).RowFor i = 2 To maxRow .Shapes(.Cells(i, strCol)).Fill.ForeColor.RGB = _ .Cells(i, Cells(1, strCol).Column + 2).Interior.ColorNextEnd WithEnd Sub
    Sub 清除着色() Dim Sh As ShapeWith ActiveSheetFor Each Sh In .ShapesIf Sh.Type = MsoShapeType.msoFreeform Then Sh.Fill.ForeColor.RGB = RGB(255, 255, 255)End IfNextEnd With
    根据数值区间和RGB着色
    可以利用昨天学习的LOOKUP函数来获取配置好区间对应的颜色RGB,方便我们下一步着色
      '公众号:Excel办公实战'作者:E精精'功能:RGB地图着色'日期:20210507'------------------------------------------------Sub 地图作色RGB() '省份所在列-可自由配置 Const strCol As String = "I" Dim i As LongWith Worksheets("RGB着色") maxRow = .Cells(Rows.Count, strCol).End(3).Row
      For i = 2 To maxRow arRGB = Split(.Cells(i, Cells(1, strCol).Column + 2), "|") .Shapes(.Cells(i, strCol)).Fill.ForeColor.RGB = _ VBA.RGB(arRGB(0), arRGB(1), arRGB(2))NextEnd WithEnd Sub
      (0)

      相关推荐