2016-08-04 75 views
-4

我想從此超鏈接中提取opt_class列https://www.cboe.org/publish/restrictionsall/cboerestrictedseries.csv並使用VBA導入到Excel。我沒有使用VBA的經驗,所以任何幫助!使用VBA從CSV超鏈接提取表中的一列到Excel使用VBA

這是我到目前爲止。當該運行時,它把所有的數據到1個細胞在Excel

子試驗() 昏暗oXMLHTTP作爲對象 昏暗sPageHTML作爲字符串 昏暗SURL作爲字符串

sURL = "https://www.cboe.org/publish/restrictionsall/cboerestrictedseries.csv" 

Set oXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") 
oXMLHTTP.Open "GET", sURL, False 
oXMLHTTP.send 
sPageHTML = oXMLHTTP.responseText 

ThisWorkbook.Sheets(1).Cells(1, 1) = sPageHTML 

MsgBox "Completed" 

回答

-1
Sub dataImport() 

     Dim wbImport  As Workbook 
     Dim wksImport  As Worksheet 
     Dim rngFind   As Range 

     '/ Open the CSV 
     Set wbImport = Workbooks.Open("https://www.cboe.org/publish/restrictionsall/cboerestrictedseries.csv") 
     Set wksImport = wbImport.Worksheets(1) 

     '/ Remove date stamp 
     wksImport.Rows(1).EntireRow.Delete 

     '/ Search for OPT_CLASS header 
     Set rngFind = wksImport.UsedRange.Cells.Find("OPT_CLASS") 

     If Not rngFind Is Nothing Then 
      '/ Found it 
      '/ Copy and paste to column A in Sheet1 of your macro workbook 
      rngFind.Resize(rngFind.End(xlDown).Row).Copy ThisWorkbook.Worksheets("Sheet1").Cells(1, 1) 
      Application.CutCopyMode = False 

      '/Close the CSV file 
      wbImport.Close False 

     Else 
      '/ Didn't find it. 
      MsgBox "No such header" 
     End If 

    End Sub 
+0

這個不錯。然而,當我運行這個,我得到一個運行時錯誤'91',說對象變量或塊變量未設置。我認爲這是「set rngFind = wksImport.usedRange.cells.Find(」OPT_CLASS )「line。我該如何解決這個問題? – aefu1116

+0

用工作簿中的實際工作表名替換Sheet1。 – cyboashu

+0

這是我工作簿中的工作表名稱。其他可能的變量沒有設置? – aefu1116