Я создал макрос для очистки заголовков постов с веб-страницы.Макрос работает нормально, когда я пробую его вручную.
Однако я намерен запустить и сохранить результат, используя файл .vbs
, который будет выполнен черезфайл .bat
, чтобы я мог в конечном итоге использовать его через windows task scheduler
.
Когда я нажму на этот .bat
файл, чтобы проверить, будет ли он работать вообще. Он открывает этот макрос с помощью .vbs
и очищает содержимое, как и положено.
Единственная проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить файл .vbs
сохранить результат в этой книге.Как сохранить результат? *
.vbs
содержит:
RunMacro
Sub RunMacro()
Dim xl, path, xlBook
path = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
Set xl = CreateObject("Excel.application")
Set xlBook = xl.Workbooks.Open(path & "\basicScraper.xlsm", 0, True)
xl.Application.Visible = False
xl.DisplayAlerts = False
xl.Application.Run "basicScraper.xlsm!MyMacro.GetPosts"
xl.ActiveWorkbook.Save
xl.ActiveWindow.Close
End Sub
.bat
содержит:
cscript macro.vbs "C:\Users\WCS\Desktop\vba scheduler\macro.vbs"
Это макрос, с которым я работаю (имя модуля: MyMacro
):
Sub GetPosts()
Dim S$, r&, post As Object
With New XMLHTTP
.Open "GET", "https://stackoverflow.com/questions", False
.send
S = .responseText
End With
With New HTMLDocument
.body.innerHTML = S
For Each post In .getElementsByClassName("question-hyperlink")
r = r + 1: Cells(r, 1) = post.innerText
Next post
End With
End Sub