解决 excel 中的 .CommandType=0 错误

解决 excel 中的 .CommandType=0 错误

我正在尝试在 Excel 中运行这个宏,以循环方式从网站中提取数据。我需要从大约 50 个网页中提取一个表,循环用于运行从每个网站提取数据的函数

Dim startYear As Integer
Dim endYear As Integer
Dim strStartYear as String

For startYear = 1942 To 2014

    ' Convert the current start year number to a string, then take the last two characters and assign to strStartYear
    ' So 1942 becomes "42".
    strStartYear = Right(CStr(startYear),2)
    ' Convert the string back into an (integer) number, and add 1 to create the End year.
    endYear = CInt(strStartYear)+1

    ' Use these variables in your other commands to specify the start/end year
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.whatifsports.com/nhl-l/profile_team.asp?hfid=11&season=" & startYear & "-" & endYear _
        , Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "profile_team.asp?hfid=11&season=" & startYear & "-" & endYear
        'other stuff omitted  for brevity
    End With
Next startYear

我收到的错误代码是运行时错误‘5’无效的过程或参数

它突出显示的行是“.CommandType = 0”

答案1

来自 MSDN 条目QueryTable.CommandType 属性 (Excel)QueryTable.CommandType Property (Excel)

仅当查询表或数据透视表缓存的 QueryType 属性值为 xlOLEDBQuery 时,才可以设置 CommandType 属性。

你没有进行 OLEDB 查询,因此查询类型是其他内容。由于是其他内容,因此您无法设置 CommandType,因此只需将其删除即可。

答案2

我得到了相同的“运行时错误 5”。查询网页的代码最初是通过在 Excel 用户界面中创建查询时录制宏创建的。您会认为所有参数都已正确填写!我注释掉了“.CommandType = 0”,查询就可以正常工作了。

相关内容