vba问题 数据的记忆

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba问题 数据的记忆相关的知识,希望对你有一定的参考价值。

下拉选框编号是数字,在输入一组数据之后,重新打开窗体如何默认编号为下一数字,而且能够查看之前编号对应的一组数据?谢谢老师。

参考技术A

    历史记录可以使用ini文件或者建立一个临时的表格

    以下三种情况可以记录并更新历史临时记录:1、点击确定,2、点击退出,3、上面的输入框值被修改的时候

    每次打开的时候,预先读取临时记录,然后在显示form

参考技术B 你需要把以前数据保存起来啊 ,要不怎么会看得到哦·· 参考技术C 注册表,或者数据库

使用 VBA 抓取 Youtube 数据:拉取视图数据的问题,462 错误

【中文标题】使用 VBA 抓取 Youtube 数据:拉取视图数据的问题,462 错误【英文标题】:Using VBA to scrape Youtube Data: Issue with Pulling View Data, 462 Error 【发布时间】:2018-03-07 17:28:55 【问题描述】:

我收到 462 错误(远程服务器不存在或不可用):

Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")

我很确定我尝试提取的视图信息位于类标记中,但我不确定为什么 getElementsByClassName 无法提取此信息。

这是来自 YouTube 的相关 HTML 代码:

<
span class="view-count style-scope yt-view-count-renderer">952 views
<
/span>

这是 VBA 代码:

Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum

Sub ImportYTData()
Dim ie As InternetExplorer
Dim html As HTMLDocument

Set ie = New InternetExplorer
ie.Visible = True
ie.navigate "https://www.youtube.com/watch?    v=0YNJQNpP9Do&list=PL_Lt8vbVLfk_pzt-TWzfk_GNAKp-ePXc1&index=22"
Do While ie.READYSTATE <> READYSTATE_COMPLETE
Application.StatusBar = "Trying to go to the YouTube Video ..."
DoEvents
Loop

Set html = ie.document
MsgBox html.DocumentElement.innerHTML

Application.StatusBar = ""

Dim RowNumber As Long
Dim QuestionField As IHTMLElement
Dim views As String

Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")
RowNumber = 4

views = QuestionField.innerText
views = Replace(views, "views", "")
views = Replace(views, "view", "")
Cells(RowNumber, 3).Value = Trim(views)

Set html = Nothing

End Sub

【问题讨论】:

你想从那个页面上实际抓取什么?您是否在每个视频都附有所有可用评论? “远程服务器不存在或不可用”提示问题出在与远程服务器的联系上。 @Shahin 我只想要观看次数 相关:***.com/questions/3331176/… 【参考方案1】:

请注意,您正在调用一个函数getElements,它是复数形式。此函数返回您尝试分配给单个元素的集合。换句话说,存在不匹配。

Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer")

一种解决方案是将您的 DIM 语句更改为:

Dim QuestionField As IHTMLElementCollection

【讨论】:

谢谢!现在我收到一个 462 错误 Set QuestionField = html.getElementsByClassName("view-count style-scope yt-view-count-renderer") getElements 的调用没有返回任何内容,并且您的代码假设将返回某些内容。您需要添加更多代码来处理这种情况。另外,请记住正在返回一个集合,因此在访问属性之前,您需要循环遍历结果或提取第一个元素。

以上是关于vba问题 数据的记忆的主要内容,如果未能解决你的问题,请参考以下文章

excel vba 调用ADODB 问题?

关于vba读取mysql数据库中文乱码的问题

EXCEL VBA 读AS400数据中文乱码问题

使用 VBA 代码从数据列创建数据透视的问题

使用 VBA 连接到 SAP HANA 数据库

使用 VBA 抓取 Youtube 数据:拉取视图数据的问题,462 错误