2013-04-14 4 views
1

У меня проблемы с кодировкой выше «9».Интерактивная карта в макросе Excel

   Sub ColourStates() 

Dim intState As Integer 
Dim strStateName As String 
Dim intStateValue As Integer 
Dim intColourLookup As Integer 
Dim rngStates As Range 
Dim rngColours As Range 

Set rngStates = Range(ThisWorkbook.Names("STATES").RefersTo) 
Set rngColours = Range(ThisWorkbook.Names("STATE_COLOURS").RefersTo) 

With Worksheets("MainMap") 
    For intState = 1 To rngStates.Rows.Count 
     strStateName = rngStates.Cells(intState, 1).Text 
     intStateValue = rngStates.Cells(intState, 2).Value 


      ' single colour 
      intColourLookup = Application.WorksheetFunction.Match(intStateValue, Range("STATE_COLOURS"), True) 
      With .Shapes(strStateName) 
       .Fill.Solid 
       .Fill.ForeColor.RGB = rngColours.Cells(intColourLookup, 1).Offset(0, 1).Interior.Color 
      End With 

    Next 
End With 

End Sub

Вот ссылка на сам файл: https://dl.dropboxusercontent.com/u/41007907/MapOfStates.xls

Он отлично работает при значениях ниже 9, но мне нужно работать до 20

ответ

1

Ваш массив STATE_COLORS включает только значения в пределах от 0 до 9 интервалов. Вот шаги, которые необходимо продолжить: 1) Открыть Excel файл 2) перейти к формулам Tag 3) нажмите на имя менеджера 4) выбрать STATE_COLORS массивы 5) увеличение значения до 20

Get вернитесь ко мне, если у вас возникнут другие вопросы.

+0

Спасибо, что работа отлично – Buras

Смежные вопросы