vb中提取网页中的数据

Posted

tags:

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

请问高手,如果我需要提取浏览器里面的流量数据该怎么做?界面如图,请高手指点下,搞定之后必然加分。我想学习一下,还有如果我限制的流量到了,有没有办法让我电脑自动下线呢?或者就是关闭网络连接也行啊?

提取网页中的某些数据用以下代码实现:
Set h = CreateObject("Microsoft.XMLHTTP")
h.Open "GET", "你所要提取信息的网页完整地址", False
h.Send
If h.ReadyState = 4 Then
s = StrConv(h.Responsebody, vbUnicode)
End If
If InStr(s, "本账号已使用时间:") > 0 And InStr(s, "分钟") > 0 Then
Text1.Text = Split(Split(s, "本账号已使用时间:")(1), "分钟")(0) '提取出来的时间
Else
MsgBox "信息提取失败"
End If
参考技术A 试试用MSInet.OCX

如何从 2 张 excel 中提取数据并将其显示在 VB 表单字段中

【中文标题】如何从 2 张 excel 中提取数据并将其显示在 VB 表单字段中【英文标题】:How to Extract data from 2 sheets of excel and display them in VB form fields 【发布时间】:2011-05-14 06:38:43 【问题描述】:

我有 2 张 excel 表格中的数据,比如 sheet2 和 sheet3,两张表格的 column1 中的值相同。所以我创建了一个带有 1 个下拉列表(Combobox1)、4 个文本框字段和 1 个列表框字段的用户表单。

下拉列表从 sheet2 的第 1 列(例如 A2:20)中选择数据,然后一旦选择了一个值,它应该分别在文本框中显示相应的行值 例如: 从 sheet2 对应的 col-2 应该显示在 textbox1 中,col-3 在 textbox2 中,col4 在 textbox3 中,col5 在 textbox4 中。 而从 sheet3 它应该匹配 column1 值与下拉列表(组合框)中的选定值匹配的行,并且所有相应的值(在 Col 2 - Col52 中)应该显示在用户表单 ListBox1 中。 我是 vba 和 excel 的新手,所以在谷歌的帮助下,我终于能够执行上述一些任务,但我没有得到任何头尾如何将选定的范围值连接到文本框和列表框。 任何帮助都将受到高度赞赏,对我来说将是一个很好的学习课程。 这是我创建的一半但不起作用的代码。

Private Sub ComboBox1_Change()

Application.ScreenUpdating = False


Dim CL As Object

Worksheets(2).Select

For Each CL In Worksheets(2).Range("A2:A20")
If CL = ComboBox1.Text Then
Range(ActiveCell, ActiveCell.Offset(0, 4)).Copy Destination:=ActiveCell.Offset(0, 5)

End If
Next
Worksheets(2).Select
End Sub



Private Sub UserForm_Activate()
ComboBox1.RowSource = "A2:A20"
End Sub

【问题讨论】:

【参考方案1】:

这可能会让你走上正轨:

Private Sub ComboBox1_Change()
    Dim rw As Long, cl As Range

    rw = WorksheetFunction.Match(Me.ComboBox1.Value, Worksheets("Sheet2").Range("A1:A20"), 0)
    TextBox1 = Worksheets("Sheet2").Range("A" & rw).Offset(0, 1)
    TextBox2 = Worksheets("Sheet2").Range("A" & rw).Offset(0, 2)
    TextBox3 = Worksheets("Sheet2").Range("A" & rw).Offset(0, 3)
    TextBox4 = Worksheets("Sheet2").Range("A" & rw).Offset(0, 4)

    ListBox1.Clear

    For Each cl In Worksheets("Sheet3").Range("B" & rw & ":AZ" & rw) //Here AZ is column 52 in worksheet
        ListBox1.AddItem cl
    Next cl
End Sub

Private Sub UserForm_Activate()
    ComboBox1.RowSource = "A1:A20"
End Sub

更新

如果你想让 ListBox 水平显示数据,那么:

    在 ListBox 属性中将ColumnHeads 设置为True 在 ListBox 属性中设置 ColumnCount equel 为 52

现在将For each cl... code aboe 替换为:

Dim rng As Range
Set rng = Worksheets("Sheet3").Range("B" & rw & ":AZ" & rw)
Me.ListBox1.RowSource = rng.Address

【讨论】:

@mark - 没问题。假设您对解决方案感到满意,您是否能够接受答案? 是的,它 100% 正常工作,正是我想要的。刚才我正在调整它,就像 ComboBox1.RowSource = "A2:A20" 正在从当前(qny)打开的工作表而不是 sheet2 中挑选数据 嗨,Remnant,你能帮我再问一个问题吗?在 sheet3 步骤中 ListBox1.AddItem cl 垂直显示值,但我希望它显示为在 excel 表中显示,即第一行应该选择从 B1-AZ1 范围内的标题,然后列表框项目应该出现在相应的列标题下方抱歉这么多问题:) 但我拼命想弄清楚这一点

以上是关于vb中提取网页中的数据的主要内容,如果未能解决你的问题,请参考以下文章

怎么用 vb提取网页内容?

VB.NET 如何获取网页中的数据

VB 网页数据提取

临时用VB做了个抓取网页数据,但是网页返回的中文是unicode编码,怎么转为中文。

vb 获取一个网页内的链接和链接名称

vb /WebBrowser 网页中的图片按钮怎么实现模拟点击