对于Next Loop无法在VBA中工作

时间:2015-04-20 03:36:19

标签: excel vba excel-vba

我正在尝试自动将网站的多个页面中的数据提取到工作簿中。在一张标题为Events的工作表上,我有3列,其中第三列(C列)是我希望从中提取数据的位置,格式为URL;http://frc-events.usfirst.org/2015/txsa/rankings。我试图使用以下代码向下移动我的108行,获取所有数据:

Sub GetData()
    For x = 1 To x = 108
        ActiveWorkbook.Worksheets("Events").Select
        ActiveWorkbook.Worksheets("Events").Activate
        mystr = Cells(x, 3)
        Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = Cells(x, 2)
        With ActiveSheet.QueryTables.Add(Connection:= _
            mystr, Destination:=Range( _
            "$A$1"))
            .Name = "rankings"
            .FieldNames = False
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlAllTables
            .WebFormatting = xlWebFormattingNone
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
    Next x
End Sub

不幸的是,在运行它时,没有任何反应。我试图将它隔离,并通过将x设置为任何单个数字,它将工作并创建一个工作表。然而,当我尝试运行循环时,正如我所说,我没有得到结果。任何建议都将非常感激。

奖励问题:
我确信这不太可能困难,但如果不是为每个新导入创建单独的工作表,我希望所有网页的数据都进入同一个工作表,我怎么可能那个? (所有数据都采用相同的格式,(也就是说,列数相同,但行数因页面而异。

1 个答案:

答案 0 :(得分:3)

改变这个:

For x = 1 To x = 108

到此:

For x = 1 To 108