我正在使用此代码制作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 Earth的屏幕上,而如果我直接使用引用的地址,即: 地址=“203 Jordan,Tallassee,AL”
它工作得很好并且绘制了应该在哪里以及如何应用。我试图确保从Excel单元格中拉出时Address
被格式化为文本,但错误仍在继续。
我做错了什么?
答案 0 :(得分:0)
尝试使用文本编辑器打开KML,看看{2}中<address>
行的格式是否有所不同。
答案 1 :(得分:0)
我会尝试使用
Address("B" & y).Value
cstr(Address("B" & y))
答案 2 :(得分:0)
我明白了。输入的两个项目有所不同。
在我从老板那里得到的Excel文件中,他拼错了Tallassee。他只使用了一个。我也不得不改变:
> & Address & <
为:
>; Address; "<
现在它运作正常。此外,当您同时绘制大量积分时,Google地球尚未到达的积分将会显示为不在屏幕上。