Någon som vet hur man kommer åt innehållet i kontrollern? Kan kanske hjälpa dig en bit på vägen. Tack för detta alldeles utmärkta program-exempel! I fall man kikar på källan ser tabelen ut att ha ett XML huvud. Kanske smidigare att tolka som det?WebBrowser1-kontrollern
Jag gissar att jag ska använda WebBrowser1.Document men jag vet inte riktigt hur. Tanken är att jag ska plocka ut börskurserna och sedan jämföra dem i mitt program. Vilka som gått bäst och sämst osv...
Private Sub Command1_Click()
WebBrowser1.Navigate "http://www.stockholmsborsen.se/stocklist.asp?_ lang=swe&list=SSE2&group=Kursnoteringar&listName=A-_ listan, mest omsatta"
End Sub
Någon som har ett förslag?
/FrasseSv: WebBrowser1-kontrollern
Du behöver en ListView, en Webbrowser, 2 knappar:
<code>
Option Explicit
Private Sub Command1_Click()
WebBrowser1.Navigate "http://www.stockholmsborsen.se/stocklist.asp?_ lang=swe&list=SSE2&group=Kursnoteringar&listName=A-_ listan, mest omsatta"
End Sub
Private Sub Command2_Click()
Dim xItem As ListItem
Dim x As Integer
Dim s As String
Dim arrHTML() As String
Dim arrPost() As String
Dim i As Integer
Dim j As Integer
With ListView1
.View = lvwReport
.LabelEdit = lvwManual
.ColumnHeaders.Add , , "Namn"
.ColumnHeaders.Add , , "Option"
.ColumnHeaders.Add , , "+/- kr"
.ColumnHeaders.Add , , "+/- %"
.ColumnHeaders.Add , , "Köp"
.ColumnHeaders.Add , , "Sälj"
.ColumnHeaders.Add , , "Senast"
.ColumnHeaders.Add , , "Högst"
.ColumnHeaders.Add , , "Lägst"
.ColumnHeaders.Add , , "Volym"
.ColumnHeaders.Add , , "Omsätt"
.ColumnHeaders.Add , , "Uppdat"
.ColumnHeaders.Item(1).Alignment = lvwColumnLeft
For x = 2 To .ColumnHeaders.Count
.ColumnHeaders.Item(x).Alignment = lvwColumnRight
Next x
End With
'Hämta innehållet på sidan
s = WebBrowser1.Document.body.innerHTML
'Ta bort all HTML from till "UPPDAT" taggen
s = Mid$(s, InStr(1, s, "UPPDAT"))
'Splitta HTML tabellen på TR taggar
arrHTML = Split(s, "<TR>")
'Loopa igenom allt
For i = 0 To UBound(arrHTML) - 2
'För varje TD i tabellen ta bort radbrytningar och splitta upp
'raden så varje cell blir ett element i en array
If InStr(1, arrHTML(i), "<td", vbTextCompare) Then
arrHTML(i) = Replace(arrHTML(i), Chr(10), "")
arrHTML(i) = Replace(arrHTML(i), Chr(13), "")
arrPost = Split(arrHTML(i), "<TD")
'Lägg in namnet på aktien i listview
'och ta bort all HTML info
Set xItem = ListView1.ListItems.Add
xItem.Text = RemoveAllTags(Trim(arrPost(1)))
'Loopa igenom resterande poster i <td> arrayen
'och ta bort all HTML info
For j = 2 To UBound(arrPost)
xItem.SubItems(j - 1) = RemoveAllTags(Trim(arrPost(j)))
Next j
End If
Next i
End Sub
Private Function RemoveAllTags(ByVal s As String) As String
Dim iStart As Integer
'Ta bort första tagen
iStart = InStr(1, s, ">")
If iStart > 0 Then s = Mid(s, iStart + 1)
Do
iStart = InStr(1, Trim(s), "<")
If iStart = 1 Then 'ny tag att ta bort
s = Mid(s, InStr(1, s, ">") + 1)
ElseIf iStart > 2 Or iStart = 2 Then 'ta bort taggar efter värdet vi vill ha ut
s = Left$(s, iStart - 1)
ElseIf iStart = 0 Then 'inga taggar kvat, hoppa ur loopen
Exit Do
End If
Loop
RemoveAllTags = s
End Function
</code>Sv: WebBrowser1-kontrollern
Det är till stor hjälp. Nu ska jag bara lusläsa det så att jag vet vad det är som händer :)
Tack än en gång!Sv: WebBrowser1-kontrollern