VBA Excel QueryTables.add.Refresh BackgroundQuery错误 Sub宏1() 将URL设置为字符串 将路径设置为字符串 作为整数的Dim i 对于i=2到50 如果范围(“价格!E”&i)。值为1,则 URL=范围(“价格!D”&i)。文本 路径=范围(“价格!F”&i)。文本 如果结束 表19.激活 使用ActiveSheet.QueryTables.Add(连接:=_ “URL;”&URL_ ,目标:=ActiveSheet.Range($A$1”)) .Name=_ 路径(&P) .FieldNames=True .rowNumber=False .FillAdjacentFormulas=False .PreserveFormatting=True .refreshinfoleopen=False .BackgroundQuery=True .RefreshStyle=xlInsertDeleteCells .SavePassword=False .SaveData=True .AdjustColumnWidth=True .RefreshPeriod=0 .WebSelectionType=xlEntirePage .WebFormatting=xlWebFormattingNone .WebPreFormattedTextToColumns=True .WebConsecutiveDelimiterSong=True .WebSingleBlockTextImport=False .WebDisableDateRecognition=False .WebDisableRedirections=False .Refresh BackgroundQuery:=False //“在上面的一行 //“运行时错误”1004 //'发生了意外错误 以 接下来我 端接头
上面的代码在指定行创建错误。google在.Refresh BackgroundQuery上的搜索显示,它在循环中的功能非常挑剔。简单地删除该行不会在excel中显示任何内容 对于当前的错误消息,代码对于第一个i值工作正常,然后中断 请回答和评论-VBA Excel QueryTables.add.Refresh BackgroundQuery错误 Sub宏1() 将URL设置为字符串 将路径设置为字符串 作为整数的Dim i 对于i=2到50 如果范围(“价格!E”&i)。值为1,则 URL=范围(“价格!D”&i)。文本 路径=范围(“价格!F”&i)。文本 如果结束 表19.激活 使用ActiveSheet.QueryTables.Add(连接:=_ “URL;”&URL_ ,目标:=ActiveSheet.Range($A$1”)) .Name=_ 路径(&P) .FieldNames=True .rowNumber=False .FillAdjacentFormulas=False .PreserveFormatting=True .refreshinfoleopen=False .BackgroundQuery=True .RefreshStyle=xlInsertDeleteCells .SavePassword=False .SaveData=True .AdjustColumnWidth=True .RefreshPeriod=0 .WebSelectionType=xlEntirePage .WebFormatting=xlWebFormattingNone .WebPreFormattedTextToColumns=True .WebConsecutiveDelimiterSong=True .WebSingleBlockTextImport=False .WebDisableDateRecognition=False .WebDisableRedirections=False .Refresh BackgroundQuery:=False //“在上面的一行 //“运行时错误”1004 //'发生了意外错误 以 接下来我 端接头,vba,excel,excel-2007,Vba,Excel,Excel 2007,上面的代码在指定行创建错误。google在.Refresh BackgroundQuery上的搜索显示,它在循环中的功能非常挑剔。简单地删除该行不会在excel中显示任何内容 对于当前的错误消息,代码对于第一个i值工作正常,然后中断 请回答和评论- TLDR:.Refresh BackgroundQuery:=如果查询输入无效或格式错误,则将失败。本例中的问题是for…next循环调用单元格作为url使用,其中没有值。但是,只要查询格式不正确,它就会失败。With语句中前面的所有行都在设置属性。
TLDR:.Refresh BackgroundQuery:=如果查询输入无效或格式错误,则将失败。本例中的问题是for…next循环调用单元格作为url使用,其中没有值。但是,只要查询格式不正确,它就会失败。With语句中前面的所有行都在设置属性。
.Refresh BackgroundQuery:=False
是一个方法调用
刷新应刷新结果。后台查询是查询SQL数据时使用的,是可选的,因此我认为您可以不使用它,而只使用.Refresh 编辑
似乎URL有问题,当它刷新时无法执行。可能是代理问题,或未连接到网络,或URL不存在。解决此问题的唯一方法是在每次迭代后删除活动查询表。一个有用的示例解决方案提供:
我不知道为什么我的修复程序会起作用,但它是: 我还在for循环中使用了querytables.add,并添加了.asc文件。这个错误只是在最后一次添加之后出现的——所以我的程序基本上按照我的要求执行,但它会中断功能。在上次运行For循环时,我删除了.Refresh BackgroundQuery:=False语句。它有必要通过for循环粘贴我之前所有运行的数据 基本上我替换了这个:
Sub Macro1()
Dim URL As String
Dim Path As String
Dim i As Integer
For i = 2 To 50
If Range("Prices!E" & i).Value <> 1 Then
URL = Range("Prices!D" & i).Text
Path = Range("Prices!F" & i).Text
End If
Sheet19.Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & URL _
, Destination:=ActiveSheet.Range("$A$1"))
.Name = _
"" & Path
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
//'In the Line above the above
//'Run time error '1004
//'An unexpected error has occured
End With
Next i
End Sub
为此:
.Refresh BackgroundQuery:=False
刷新BackgroundQuery还能做什么?请记住,代码使用电子表格中提供的url,因此如果您希望代码正常工作,则需要输入自己的url,我使用“”作为url,并使用“?tmp=toolbar\u FlvTube\u homepage&prt=flvtubetb04ie&clid=acd050b75c14e5ba9a270e770c9cf6f”由于路径也会将.refresh backgroundquery:=False更改为.refresh=False失败,并在另一个注意事项上给出错误“object不支持此方法”,如果您将for next循环更改为for i=2到2,则代码只需运行find,所以这个问题在某种程度上与…下一个循环有关,我的意思是只使用。刷新你是否意识到你每次都将数据放入相同的范围。因此,您将得到48个查询表,所有这些查询表都指向同一个位置,而问题可能在于无法找到资源。
If Index = ctr Then
Else
.Refresh BackgroundQuery:=False
End If