2013-08-04 39 views
1

我想实现一个代码,我可以从一个网站导入多个表格。我可以使用下面的代码。但是,代码太慢了。从网页将表格导入excel快速

Sub FetchData() 
    With ActiveSheet.QueryTables.Add(Connection:= _ 
     "URL;%url%", Destination:=Range(_ 
     "$A$1")) 
     .Name = "xyz" 
     .FieldNames = True 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .BackgroundQuery = True 
     .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 
End Sub 

有人可以建议一个代码,将提供输出快?

+1

什么是“慢”? 10秒?一分钟?检索网页可能是瓶颈。 – JJJ

+0

阻止您通过手动创建Web查询并在VBA中刷新它? –

+0

需要4分钟。它为我工作。这不是问题。但是,如果某些代码使其从网络中导入表格的速度稍快,我希望它可以。 – user2650238

回答

0

有一些想法浮现在脑海中,你是否将屏幕更新设置为false,如果在代码运行时屏幕上出现了很多问题,这可以真正加快代码的速度。

Application.ScreenUpdating = False 

第二个想法是,你有很多“.L运营商在你的代码,你检查,你需要将它们全部或者你可以删除其中的一些。我听说取消了不必要的'。'运营商可以大幅加速代码。