Excel Instr()中的溢出错误
我仍然在尝试从网页中获取一些数据,我得到了一个解决方案,如何“grep”HTML文本,但现在我正在尝试从这个字符串文本中分离一些部分 我想取出一个介于变量a和变量B之间的部分,并使用下面的代码 我总是遇到Excel Instr()中的溢出错误,excel,vba,Excel,Vba,我仍然在尝试从网页中获取一些数据,我得到了一个解决方案,如何“grep”HTML文本,但现在我正在尝试从这个字符串文本中分离一些部分 我想取出一个介于变量a和变量B之间的部分,并使用下面的代码 我总是遇到运行时错误6溢出,有人知道我为什么以及如何解决这个问题吗 Sub Button1_Click() Const HTTPREQUEST_PROXYSETTING_PROXY = 2 Dim oRequest As Object, pagetext, third As Stri
运行时错误6溢出
,有人知道我为什么以及如何解决这个问题吗
Sub Button1_Click()
Const HTTPREQUEST_PROXYSETTING_PROXY = 2
Dim oRequest As Object, pagetext, third As String, first, second As Integer
Set oRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
oRequest.Open "GET", "http://www.vodafone.de/privat/handys-tablets-tarife/smartphone-tarife.html"
oRequest.Send
pagetext = oRequest.ResponseText
first = InStr(pagetext, "window.phones")
second = InStr(first + 1, pagetext, "window.propositions")
third = Mid(pagetext, first + 1, second - first - 1)
MsgBox (third)
End Sub
将
second
变量的声明从Integer
更改为Long
Integer
类型最多可容纳32767个数字,并且表达式(154031
)返回的值大于该值Long
数据类型最多可容纳2147483647个数字,因此更适合您的具体情况
通常,VBA现在会将所有的整数
转换为Long
,因此在默认情况下,将变量调暗为Long
是一种更好的做法
此外,在一行中标注多个变量时也应小心,因为
Dim oRequest As Object, pagetext, third As String, first, second As Integer
第一个
是一个变量
,第二个
是一个整数
应该是这样
Dim oRequest As Object, pagetext, third As String, first as Long, second As Long
您的
第三个变量似乎没有标注尺寸。如果您坚持将选项Explicit
作为模块的第一行,您可以帮助自己避免许多运行时错误。这与您认为的不同Dim-oRequest作为对象,pagetext,第三个作为字符串,第一个作为整数,第二个作为整数
。PageText和first被声明为变体。