Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Instr()中的溢出错误_Excel_Vba - Fatal编程技术网

Excel Instr()中的溢出错误

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

我仍然在尝试从网页中获取一些数据,我得到了一个解决方案,如何“grep”HTML文本,但现在我正在尝试从这个字符串文本中分离一些部分

我想取出一个介于变量a和变量B之间的部分,并使用下面的代码

我总是遇到
运行时错误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被声明为变体。