Содержание
Вот хитрый трюк для людей, использующих карты в Excel. В этом блоге я объясню, как выделить карту в Excel на основе раскрывающегося списка.
Я взял редактируемую карту США. Идея состоит в том, чтобы выделить штат в США, когда его название выбирается из раскрывающегося списка.
Что-то вроде того, что показано на картинке ниже:
Теперь, прежде чем я покажу вам код, вот несколько предварительных условий для этого трюка.
- Получите редактируемую карту США, на которой вы можете выбрать различные фигуры, которые хотите выделить
- Создайте список всех 50 состояний в одном столбце, и в столбце справа я написал State 1, State 2 и т. Д.
- Назовите каждую фигуру на карте. Например, у меня здесь 50 фигур для 50 состояний, и я назвал каждую фигуру как «Состояние 1», «Состояние 2», «Состояние 3» и так далее… Для этого выберите любую фигуру и перейдите в поле «Имя», которое находится на слева от строки формул, и введите его имя из столбца State Number. Например, я выбрал Алабаму и назвал ее Штат 1.
- Создайте раскрывающийся список Excel с именами всех состояний (в данном случае $ B $ 2).
- Используйте функцию Vlookup для извлечения номера состояния, когда состояние выбирается из раскрывающегося списка. Вот формула, которую я использовал в ячейке $ B $ 3
= ВПР (B2, 'Список состояний'! $ B $ 3: $ C $ 52,2, FALSE)
Код для выделения карты в Excel
Private Sub Worksheet_Change (ByVal Target As Range) Dim N As Integer Dim ShapeName As String N = ActiveSheet.Shapes.count If Target.Address = "$ B $ 2" Then For i = 1 to N ShapeName = ActiveSheet.Shapes (i). Name If Left (ShapeName, 6) = "State" Затем ActiveSheet.Shapes (i) .Select With Selection.ShapeRange.Fill .Visible = msoFalse .Transparency = 1 End With End If Next i StateNumber = Range ("$ B $ 3" ) .Value ActiveSheet.Shapes (StateNumber) .Select With Selection.ShapeRange.Fill .Visible = msoTrue .Visible = msoTrue .ForeColor.RGB = RGB (192, 0, 0) .Transparency = 0 .Solid End With ActiveSheet.Range ( "$ B $ 2"). Выберите End If End Sub
Следуйте этим простым шагам при вставке этого кода
- Сначала щелкните правой кнопкой мыши вкладку листа с картой и выберите «Просмотреть код». Это откроет редактор VB.
- Вставьте код.