2009-05-27 27 views
0

我使用這個代碼,以KML文件:爲什麼我的KML Google地球位置在屏幕上打印?

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約旦,塔拉西,AL

當我做到這一點,它打印其關閉谷歌地球的屏幕,而如果我直接使用引用地址,即: Address =「203 Jordan,Tallassee,AL」

它工作的很好,並繪製它在哪裏以及如何應對。我試圖確保Address在從Excel單元格拉出時被格式化爲文本,但錯誤不斷髮生。

我在做什麼錯?

回答

0

。輸入的兩個項目有所不同。

在我從老闆那裏得到的Excel文件中,他拼寫錯了Tallassee。他只用一個。我也不得不改變:

> & Address & < 

到:

>; Address; "< 

現在它工作正常。此外,當您同時繪製多個點時,Google Earth尚未得到的點將顯示爲脫離屏幕。

+1

@Rich B:嗯,「Tallassee,AL」是一個完全有效的城市名稱(http://maps.google.com/maps?q=Tallassee,+AL)。任何原因你做不必要的編輯? – 2009-06-15 16:15:17

+0

@亞當:你是我的邪惡計劃! – GEOCHET 2009-06-15 17:23:21

0

嘗試使用文本編輯器打開KML,並查看在您的兩種情況下<address>行的格式是否不同。

+0

噢相信我,我已經反覆嘗試過,沒有任何區別,如從記事本中看到的那樣工作的版本無法正常工作。我正在修復打開他們在微軟的單詞來嘗試,看看是否有字體差異或什麼的。 – Bryan 2009-05-28 12:56:46

0

我想通了我會嘗試使用

Address("B" & y).Value 
cstr(Address("B" & y)) 
相關問題