Board logo

標題: [發問] 查詢web連線後出現(沒有回應) [打印本頁]

作者: ann326    時間: 2014-6-29 23:01     標題: 查詢web連線後出現(沒有回應)

請教各位高手,我想要把台股的一些基本資料抓下來,做了以下的巨集,但不知道為什麼怎麼跑都只能跑15個
超過就會顯示"沒有回應"而要強制關掉excel (有一次曾經能跑到40個)
爬了之前的文章發現儲存在活頁簿裡面的連線很多
把連線都刪除後再加入
         Cells.Hyperlinks.Delete
        .Delete
確實連線也沒有再增加了,但是還是只能跑15個(哭)
而且我的excel用掉了180MB的記憶體(這有關係嗎?)
懇請幫我解惑 因為目前還是個新手
若有提供範例程式碼可以大概寫一下要加在程式中的哪一段
以及大概的用途嗎
感激不盡 謝謝!


我的程式碼如下:
Sub 巨集更新基本資料2()
    a = Sheets("總表").Range("B1")
    b = Sheets("總表").Range("C1")
    For i = a To b
    s = Sheets("總表").Range("B" & i)
    Sheets("基本").Select
    Cells.Select
    Selection.Delete Shift:=xlUp
   
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://justdata.yuanta.com.tw/z/zc/zca/zca_" & s & ".asp.htm", Destination:= _
        Range("$A$1"))
        .Name = "zca_" & s & ".asp"
        .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 = "3"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
        .Refresh BackgroundQuery:=False
         Cells.Hyperlinks.Delete
        .Delete
    End With

    Sheets("基本").Select
    Range("C10").Select
    Selection.Copy
    Sheets("總表").Select
    Range("R" & i).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False     
    ActiveWorkbook.Save

    Next
   
End Sub
作者: ciboybj    時間: 2014-8-18 13:12

您好
由於您未提供以下資料,加上您未對變數進行定義
   a = Sheets("總表").Range("B1")
    b = Sheets("總表").Range("C1")
因此建議改為以下程式碼
Dim a, b, i As Integer
Dim s As String
a = Sheets("總表").Range("B1").text '原本的寫法是指一個範圍,不是數字,此處用text是將其改為字串,但若該格子中並非純數字,則必須將該格中的字串進行處理
b = Sheets("總表").Range("C1").text
s = Sheets("總表").Range("B" & i).text
以上是我依據您提供的資料,提供的建議,我未實際執行過
謝謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)