Question

J'utilise ce code pour créer un fichier 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

Pour la plupart, il fonctionne très bien, à l'exception du fait que lorsque je tente de mettre Address égale à Range("B" & Y) qui a la chaîne:

  

203 Jordanie, Tallassee, AL

Quand je fais cela, il imprime de l'écran de Google Earth alors que si j'utilise l'adresse directement cité, i.e. .:     Adresse = "203 Jordanie, Tallassee, AL"

Il fonctionne très bien et les parcelles où et comment il est censé. Je l'ai essayé de faire Address vous est formaté en tant que texte lors du tirage de la cellule Excel, mais l'erreur continue à se produire.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution 2

Je compris. Il y avait une différence entre les deux éléments étant entrés.

Dans le fichier Excel je suis arrivé de mon patron, il mal orthographié Tallassee. Il a utilisé un seul s. Je devais aussi changer:

> & Address & <

à:

>; Address; "<

Maintenant, il fonctionne très bien. En outre, lorsque vous complotez beaucoup de points à la fois, les points que Google Earth n'a pas encore eu l'occasion sera présentée comme si elles sont hors de l'écran.

Autres conseils

Essayez d'ouvrir le fichier KML avec un éditeur de texte et voir si la ligne de <address> est formaté différemment dans vos 2 cas.

Je voudrais essayer d'utiliser

Address("B" & y).Value
cstr(Address("B" & y))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top