Процедура VBA выводит различное количество строковых переменных, которые должны быть объявлены и использованы повторно
Здесь у нас есть процедура дляКодо отМистер Тим Уильямс который печатает наImmediate window
что-то, чего мы действительно-очень хотим. Я сделал несколько мини модификаций изоригинал и у меня есть комментарий-словоMODIFICATION
рядом с ними
Sub MAGAZINE()
Dim IE As InternetExplorer ' MODIFICATION
Dim els, el, colDocLinks As New Collection
Dim lnk
Dim Ticker As String ' MODIFICATION
Set IE = New InternetExplorer 'MODIFICATION
IE.Visible = True
Ticker = Worksheets("Sheet1").Range("A1").Value 'MODIFICATION
loadpage IE, "https://www.sec.gov/cgi-bin/browse-edgar?" & _
"action=getcompany&CIK=" & Ticker & "&type=10-Q" & _ 'MODIFICATION by putting the Ticker String Variable and then Concatenate accordingly
"&dateb=&owner=exclude&count=20"
Set els = IE.Document.getelementsbytagname("a")
For Each el In els
If Trim(el.innertext) = "Documents" Then
colDocLinks.Add el.href
End If
Next el
For Each lnk In colDocLinks
loadpage IE, CStr(lnk)
For Each el In IE.Document.getelementsbytagname("a")
If el.href Like "*[0-9].xml" Then 'MODIFICATION
Debug.Print el.innertext, el.href
End If
Next el
Next lnk
End Sub
Sub loadpage(IE As Object, url As String)
IE.Navigate url
Do While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
End Sub
В четвертой модификации / дополнении вы можете заметить, что человек может просто набрать Stock Ticker в ячейке A1 и запустить код
Ticker = Worksheets("Sheet1").Range("A1").Value 'MODIFICATION
Теперь дело в том, что если мы будем ставить разные биржевые тикеры, мы получим разныеколичество строк, напечатанных в окне «Немедленно».
Например, набрав в ячейке A1 тикер CRR, мы получим 11 результатов
Теперь, если мы введем в ячейку A1 тикер MSFT, мы получим 14 результатов
Теперь суть проблемы заключается в том, что эти строковые значения должны быть вставлены вRIFLE macro
и хотя я мог бы задавать значения, которые я получаю из каждой итерации цикла в String Variables, в моих мыслях возникает вопрос:MAGAZINE macro
как это логичноне имеет точного количества строк, напечатанных в непосредственном окне. Вы можете видеть это на самом деле на двух предыдущих рисунках ...
Так как это возможно, когдаMAGAZINE macro
имеет результат, скажем, 6 строк; они должны быть назначены 6 строковым переменным и не иметь 30 строковых переменных, всегда объявляющих разрушение в памяти, и когда результат составляет 14 строк; они должны быть назначены 14 строковым переменным.
Как это можно отрегулировать во время выполнения, чтобы винтовка всегда была загружена с правильным количеством раундов?
Потому что я не остановлюсь там; тогда у меня есть планы подключить эти строковые переменные вRIFLE macro
предоставленоuser2140261 и показано ниже ...
Sub RIFLE()
Dim strXMLSite As String
Dim objXMLHTTP As MSXML2.XMLHTTP
Dim objXMLDoc As MSXML2.DOMDocument
Dim objXMLNodexbrl As MSXML2.IXMLDOMNode
Dim objXMLNodeDIIRSP As MSXML2.IXMLDOMNode
Set objXMLHTTP = New MSXML2.XMLHTTP
Set objXMLDoc = New MSXML2.DOMDocument
strXMLSite = "http://www.sec.gov/Archives/edgar/data/10795/000119312513456802/bdx-20130930.xml"
objXMLHTTP.Open "POST", strXMLSite, False
objXMLHTTP.send
objXMLDoc.LoadXML (objXMLHTTP.responseText)
Set objXMLNodexbrl = objXMLDoc.SelectSingleNode("xbrl")
Set objXMLNodeDIIRSP = objXMLNodexbrl.SelectSingleNode("us-gaap:DebtInstrumentInterestRateStatedPercentage")
Worksheets("Sheet1").Range("A1").Value = objXMLNodeDIIRSP.Text
End Sub
Если бы вы могли подключить это колеблющееся число строковых значений, выходящих из макроса MAGAZINE, в строковые переменные в макросе RIFLE, которые бы помогли решить всю проблему.
Макрос RIFLE здесь имеет в своем первоначальном видеstrXMLSite
Струна Variabe.
ОБНОВЛЕНИЕ В настоящее время я пытаюсь загрузить его в массив, а затем выгрузить его ...