Markeer kaart in Excel op basis van vervolgkeuzelijst in Excel

Inhoudsopgave

Hier is een handige truc voor mensen die kaarten in Excel gebruiken. In deze blog zal ik uitleggen hoe je een kaart in Excel kunt markeren op basis van een vervolgkeuzelijst.

Ik heb een bewerkbare kaart van de VS genomen. Het idee is om een ​​staat in de VS te markeren wanneer de naam wordt geselecteerd in een vervolgkeuzelijst.

Iets zoals op de onderstaande foto:

Voordat ik je de code laat zien, zijn hier een paar vereisten voor deze truc.

  1. Ontvang een bewerkbare kaart van de VS waarin u verschillende vormen kunt selecteren die u wilt markeren
  2. Maak een lijst van alle 50 staten in één kolom, en in de kolom aan de rechterkant schreef ik State 1, State 2, enzovoort
  3. Geef elke vorm op de kaart een naam. Ik heb hier bijvoorbeeld 50 vormen voor 50 staten, en ik heb elke vorm een ​​naam gegeven als staat 1, staat 2, staat 3, enzovoort… Selecteer hiervoor een willekeurige vorm en ga naar het naamvak, dat aan staat. links van de formulebalk en voer de naam in in de kolom Staatsnummer. Ik heb bijvoorbeeld Alabama geselecteerd en het State 1 genoemd.
  4. Maak een Excel-vervolgkeuzelijst met de namen van alle staten ($ B $ 2 in dit geval)
  5. Gebruik de Vlookup-functie om het staatsnummer te extraheren wanneer een staat is geselecteerd in de vervolgkeuzelijst. Hier is de formule die ik heb gebruikt in cel $B$3
    =VERT.ZOEKEN(B2,'Statelijst'!$B$3:$C$52,2,FALSE)
Code om kaart in Excel te markeren
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 " Then ActiveSheet.Shapes(i).Select With Selection.ShapeRange.Fill .Visible = msoFalse .Transparency = 1 End With End If Next i StateNumber = Range("$B$3" ).Waarde ActiveSheet.Shapes(StateNumber).Selecteer met selectie.ShapeRange.Fill .Visible = msoTrue .Visible = msoTrue .ForeColor.RGB = RGB(192, 0, 0) .Transparency = 0 .Solid End With ActiveSheet.Range( "$B$2"). Selecteer End If End Sub

Volg deze eenvoudige stappen terwijl u deze code plakt

  1. Klik eerst met de rechtermuisknop op de bladtab met de kaart en selecteer "Code weergeven". Dit opent de VB-editor.
  2. Plak de code.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave