Почему мое местоположение KML Google Earth печатается за пределами экрана? - PullRequest
0 голосов
/ 28 мая 2009

Я использую этот код для создания файла 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 Jordan, Tallassee, AL

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

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

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

Ответы [ 3 ]

0 голосов
/ 28 мая 2009

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

Address("B" & y).Value
cstr(Address("B" & y))
0 голосов
/ 28 мая 2009

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

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

> & Address & <

до:

>; Address; "<

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

0 голосов
/ 28 мая 2009

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

...