- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
REM I'm trying to do some simple webscraping in OpenOffice (I usually work in Excel but I'm trying to port
REM something over for a coworker that doesn't have Excel).
REM However, when I try to run something very similar to this, it keeps giving me this BASIC runtime error 1.
Sub Macro1
Dim explorer As Object
Set explorer = CreateObject("InternetExplorer.Application")
explorer.Visible = True
explorer.navigate("www.yahoo.com")
Const READYSTATE_COMPLETE As Long = 4
Do While explorer.Busy Or explorer.readyState <> READYSTATE_COMPLETE
Loop
dim page as object
set page = explorer.Document
dim mailButton as object
set mailButton = page.GetElementByID("ybar-navigation-item-mail") 'this is the line the error occurs on
mailButton.Click
End Sub
«Do you know that you can save script in vbs file (you have to delete types in variables declarations) and run it directly by double click without using office application? I recommend you to use this way».
Именно поэтому я против стака, любой лалке там нужен исключительно рейтинг, поэтому у зарегистрированных пользователей есть непреодолимое желание получить баллы или чё там у них любым способом. Вот этот индивидуум, например, не ответил на вопрос, а насрал каким-то бестолковым советом, поучая senior enterprise Excell девелопера.
До чего дошел прогресс.
А таблички потом можно заливать на гитхаб, получится архив с говнокодами
Это всё ещё фигня, и уже 20 лет назад как доступно.
Самая круть была в другом.
У CreateObject был второй аргумент, который задавал удалённую машину, на которой можно было создать COM-объект.
Причём завёрнутая в простейшую скриптуху.
...
> set mailButton = page.GetElementByID("ybar-navigation-item-mail")
Я сначала удивился, что опеноффисовцы даже смогли написать поддержку изъёбистых COM/DCOM/OLE-протоколов MSa.
А потом понял что не смогли :(
А вот в Линуксе и поныне нет похожего функционала. Чтобы из коробки 3rd party скриптуха могла плодить объект приложения.
И оно заэкспортило свою объектную модель, через которую можно полностью им управлять.
Оверинжинирный D-BUS так вообще не умеет.
Джва года назад в FF наконец-то завезли поддержку D-BUS.
https://utcc.utoronto.ca/~cks/space/blog/unix/FirefoxDBusRemoteControl