返回列表 上一主題 發帖

[發問] 跑到一半會卡住~~

本帖最後由 GBKEE 於 2016-12-2 07:19 編輯

回復 1# power82843

是這裡卡住嗎?
  1. Option Explicit
  2. Sub 股利股息()
  3.     Dim Sh As Worksheet, i As Integer
  4.     On Error Resume Next                  '不理會程式上的錯誤,程式繼續執行下去
  5.     Set Sh = Sheets("股利股息")        '沒有 Sheets("股利股息")時有程式上的錯誤]
  6.     On Error GoTo 0                           '程式停止處理錯誤,程式執行上有錯誤發生會終止.
  7.     If Sh Is Nothing Then                   '沒有 Sheets("股利股息")時 Sh Is Nothing
  8.         Sheets.Add after:=Sheets(Sheets.Count)
  9.         Sheets(Sheets.Count).Name = "股利股息"
  10.         Set Sh = Sheets("股利股息")
  11.     End If
  12.     With Sh ' Worksheets("股利股息").Select
  13.         .UsedRange.Clear
  14.         .Range("A1").Value = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  15.         .Range("B1").Value = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  16.         .Range("B2").Value = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  17.     End With
  18. For i = 10 To Sheets("個股資料").Range("B10").End(xlDown).Row
  19.      Sh.Cells(Rows.Count, 2).End(xlUp).Offset(1, -1).Resize(11) = Worksheets("個股資料").Range("C" & i).Value ' '將A欄位填入股票名稱,連續填寫11列
  20.     With Sh.QueryTables.Add(Connection:= _
  21.         "URL;https://tw.stock.yahoo.com/d/s/dividend_" & Sheets("個股資料").Range("B" & i) & ".html", Destination:=Sh.Cells(Rows.Count, 2).End(xlUp).Offset(1))
  22.         .Name = "0000000"
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# power82843

卡在那裡?
  1. For i = 10 To Sheets("個股資料").Range("B281").End(xlDown).Row
  2.     Worksheets("ROE總表").Range("B1").Value = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  3.     Worksheets("ROE總表").Range("B2:J2") = Array("期別", "104", "103", "102", "101", "100", "99", "98", "97")
  4.     '是少了這裡嗎?   
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2016-12-3 17:02 編輯

回復 8# power82843
3708 上緯投控  沒有資料
  1. Range("C1:C500").Find("股東權益報酬率").Select
複製代碼
卡在這裡是嗎?
試試看
  1. Option Explicit
  2. Sub Ex_ROE()
  3.     Dim Sh(1 To 3) As Worksheet, Rng As Range, i As Integer
  4.     Set Sh(1) = Sheets("個股資料")
  5.     Set Sh(2) = Worksheets("ROE總表")
  6.     Set Sh(3) = Worksheets("ROE")
  7.    
  8.     '***執行本程式碼一次後,可刪除掉兩行星號間的程式碼**
  9.     '*************************************
  10.     '刪除 ROE 頁上QueryTables及 QueryTables.Add所新增的名稱
  11.     'QueryTable過多,名稱過多也是檔案膨大的原因之ㄧ
  12.     With Sh(3)
  13.         For i = .Names.Count To 1 Step -1
  14.             .Names(i).Delete
  15.         Next
  16.         .UsedRange.Clear
  17.         For i = .QueryTables.Count To 1 Step -1
  18.           .QueryTables(i).Delete
  19.        Next
  20.     End With
  21.     '******************************
  22.     With Sh(2)
  23.         .UsedRange.Clear
  24.         .Range("B1") = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
  25.         .Range("B2:J2") = Array("期別", "104", "103", "102", "101", "100", "99", "98", "97")
  26.         .Activate
  27.     End With
  28.     For i = 10 To Sh(1).Range("B281").End(xlDown).Row
  29.         If Sh(1).Range("B" & i) <> "" Then   '非空白儲存格
  30.             With Sh(3).QueryTables.Add(Connection:= _
  31.                 "URL;http://stockchannelnew.sinotrade.com.tw/z/zc/zcr/zcra/zcra_" & Sh(1).Range("B" & i) & ".djhtm", Destination:=Sh(3).Range("B1"))
  32.                 '.Name = "0000000"  '名稱以數字開頭,會自動加上"_" 為 "_0000000"
  33.                 .WebSelectionType = xlSpecifiedTables
  34.                 .WebFormatting = xlWebFormattingNone
  35.                 .WebTables = "1"
  36.                 .WebPreFormattedTextToColumns = True
  37.                 .WebConsecutiveDelimitersAsOne = True
  38.                 .WebSingleBlockTextImport = False
  39.                 .WebDisableDateRecognition = False
  40.                 .WebDisableRedirections = False
  41.                 .Refresh BackgroundQuery:=False
  42.             End With
  43.             With Sh(3).QueryTables(1)
  44.                 Application.StatusBar = i - 9 & " - " & .ResultRange.Range("b2") & "   股東權益報酬率 完成"
  45.                 If .ResultRange.Rows.Count > 5 Then
  46.                     Sh(2).Range("b1").End(xlDown).Offset(1, -1).Resize(, .ResultRange.Columns.Count) = .ResultRange.Rows(16).Value
  47.                     Sh(2).Range("b1").End(xlDown).Offset(, -1) = Sh(1).Range("C" & i)
  48.                     Sh(2).Range("b1").End(xlDown).Offset(, -1).Activate
  49.                 Else
  50.                     Sh(2).Range("b1").End(xlDown).Offset(1) = "查無 " & .ResultRange.Range("b2") & " 財務比率表資料(合併年表)"
  51.                 End If
  52.                 .ResultRange.Clear                 '清除匯入外部的資料
  53.                 Sh(3).Names(.Name).Delete   '刪除自動新增的名稱
  54.                 .Delete                                    '刪除 QueryTable 物件
  55.             End With
  56.         End If
  57.     Next
  58. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題