Почему мое местоположение KML Google Earth печатается за пределами экрана?

Я использую этот код для создания файла KML:

Sub Create_KML()
' Builds KML from spread sheet
' Keyboard Shortcut: Ctrl+c
'
'Trash = Application _
'    .GetOpenFilename("Text Files (*.txt), *.txt")
'Open File For Random As #1 ' "c:\Users\mwilson\Desktop\Trash.txt
'Open "c:\Users\mwilson\Desktop\Test Google\Trash.txt" For Output As #1
Open "C:\Documents and Settings\eecoop\Desktop\10 day avg rssi Google kml\Trash.kml" For Output As #1
y = 9
Address = Range("B" & y) ' "203 Jordan, Tallassee, AL"
While Address <> ""
'**************
Print #1, "<?xml version=""1.0"" encoding=""utf-8""?>"         '1
Print #1, "<kml xmlns=""http://www.opengis.net/kml/2.2"">"     '2
Print #1, "   <Placemark>"                                        '3
Print #1, "     <name>George</name>"                           '4
Print #1, "        <Style>"                                     '5
Print #1, "           <IconStyle>"                              '6
Print #1, "               <scale>.3</scale>"                    '7
Print #1, "               <Icon>"                               '8
Print #1, "                  <href>Green.png</href>"             '9
Print #1, "               </Icon>"                             '10
Print #1, "            </IconStyle>"                            '11
Print #1, "        </Style>"                                     '12
Print #1, "     <address>" & Address & "</address>"    '13
Print #1, " </Placemark>"                                        '14
Print #1, "</kml>"                                               '15
Print #1, " "
'********
'    Range("A2").Select
        ID = ActiveCell.FormulaR1C1
'    Range("B2").Select
        Address = ActiveCell.FormulaR1C1
'    Range("C2").Select
'        RSSI = ActiveCell.FormulaR1C1
'    Trash.Write ("hi")

'    Print #1, ID
y = y + 1
Address = Range("B" & y)
Wend
    Close #1
End Sub

По большей части это работает просто отлично, за исключением того факта, что когда я пытаюсь установить Address равным Range("B" & Y), у которого есть строка:

203 Джордан, Талласси, Алабама

Когда я это делаю, он печатает его с экрана Google Планета Земля, тогда как если я использую адрес в кавычках напрямую, то есть: Address = "203 Jordan, Tallassee, AL"

Он отлично работает и показывает, где и как он должен. Я попытался убедиться, что Address отформатирован как текст при извлечении из ячейки Excel, но ошибка продолжает происходить.

Что я делаю не так?


person Bryan    schedule 27.05.2009    source источник


Ответы (3)


Попробуйте открыть KML в текстовом редакторе и посмотрите, форматируется ли строка <address> по-разному в ваших двух случаях.

person Igor Krivokon    schedule 27.05.2009
comment
О, поверьте мне, я пробовал это неоднократно. Нет абсолютно никакой разницы, как видно в Блокноте, от версии, которая работает, от версии, которая не работает. Я собираюсь открыть их в Microsoft Word, чтобы посмотреть, есть ли разница в шрифтах или что-то в этом роде. - person Bryan; 28.05.2009

Я понял. Была разница в двух введенных элементах.

В файле Excel, который я получил от своего босса, он неправильно написал Талласси. Он использовал только один s. Мне также пришлось изменить:

> & Address & <

to:

>; Address; "<

Теперь он работает нормально. Кроме того, когда вы наносите много точек одновременно, точки, до которых Google Планета Земля еще не добралась, будут отображаться так, как будто они находятся за пределами экрана.

person Bryan    schedule 28.05.2009
comment
@Rich B: Э-э, Талласси, AL — вполне допустимое название города (maps.google .com/maps?q=Tallassee,+AL). Есть ли причина, по которой вы делаете ненужные правки? - person Adam V; 15.06.2009

я бы попробовал использовать

Address("B" & y).Value
cstr(Address("B" & y))
person Nathan Fisher    schedule 27.05.2009