Excel 网络垃圾

Excel 网络垃圾,excel,web-scraping,export-to-excel,vba,Excel,Web Scraping,Export To Excel,Vba,我用Excel抓取网页时遇到问题。我想要这个网站的数据:charitynavigator.org 我正在对以下链接列表进行测试: 我记录了我通过第一个环节(Aims项目)的宏观过程。然后,我添加了一个有人在YouTube视频中使用的“循环”(?)。录像制作者解释了代码的逻辑,因此循环似乎是有意义的,并且适用于我的问题。然而,在抓取第一页后,程序无法进入下一页 这是我的密码 Sub adds() 'For i = 1 to 5 For x = 1 To 5 Worksheets("

我用Excel抓取网页时遇到问题。我想要这个网站的数据:charitynavigator.org

我正在对以下链接列表进行测试:

我记录了我通过第一个环节(Aims项目)的宏观过程。然后,我添加了一个有人在YouTube视频中使用的“循环”(?)。录像制作者解释了代码的逻辑,因此循环似乎是有意义的,并且适用于我的问题。然而,在抓取第一页后,程序无法进入下一页

这是我的密码

Sub adds()

'For i = 1 to 5
 For x = 1 To 5
 Worksheets("IntlHum").Select
 Worksheets("IntlHum").Activate
 mystr = "URL;http://www.charitynavigator.org/index.cfm?bay=search.summary&orgid=3803"
 mystr = Cells(x, 1)
 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = x

With ActiveSheet.QueryTables.Add(Connection:= _
    mystr, _
    Destination:=Range("$A$1"))
    '.CommandType = 0
    .Name = "index.cfm?bay=search.summary&orgid=3803_1"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlSpecifiedTables
    .WebFormatting = xlWebFormattingNone
    .WebTables = "2,3,4,5"
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With

Next x

End Sub
YouTube视频是 我完全是个新手。我懂逻辑,曾与斯塔塔和LaTexx合作过,但我不是计算机科学家。请尽量少用术语。谢谢

在第二遍(
x=2
)中,“ActiveSheet”的概念可能已经改变,因此行
mystr=Cells(x,1)
将不会返回预期值,因为它可能会从您想要的不同数据源读取。(有关更多详细信息,请参阅)。“ActiveSheet”的更改是作为调用

将其更改为
mystr=Worksheets(“IntlHum”)。单元格(x,1)
可能会有所帮助

但我的答案是学习如何使用Excel VBA调试,包括“单步执行(F8)”、“打印内容的即时窗口”

这是任何严重的Excel VBA必须学习的工具,也是用于代码故障排除的工具

Excel VBA(以及一般的Visual Basic)不是为计算机科学家而设计(或打算)的,而是为“大众”而设计的,因此您应该很容易找到解决方法(在学习了一些必要的“术语”之后)


您应该能够找到许多教程资源,符合您目前的技能使用谷歌。作为此类资源之一,您可以尝试

欢迎使用堆栈溢出,请参阅下面的我的答案并阅读