- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2016-12-3 17:02 編輯
回復 8# power82843
3708 上緯投控 沒有資料- Range("C1:C500").Find("股東權益報酬率").Select
複製代碼 卡在這裡是嗎?
試試看- Option Explicit
- Sub Ex_ROE()
- Dim Sh(1 To 3) As Worksheet, Rng As Range, i As Integer
- Set Sh(1) = Sheets("個股資料")
- Set Sh(2) = Worksheets("ROE總表")
- Set Sh(3) = Worksheets("ROE")
-
- '***執行本程式碼一次後,可刪除掉兩行星號間的程式碼**
- '*************************************
- '刪除 ROE 頁上QueryTables及 QueryTables.Add所新增的名稱
- 'QueryTable過多,名稱過多也是檔案膨大的原因之ㄧ
- With Sh(3)
- For i = .Names.Count To 1 Step -1
- .Names(i).Delete
- Next
- .UsedRange.Clear
- For i = .QueryTables.Count To 1 Step -1
- .QueryTables(i).Delete
- Next
- End With
- '******************************
- With Sh(2)
- .UsedRange.Clear
- .Range("B1") = "++++++++++++++++++++++++++++++++++++++++++++++++++++"
- .Range("B2:J2") = Array("期別", "104", "103", "102", "101", "100", "99", "98", "97")
- .Activate
- End With
- For i = 10 To Sh(1).Range("B281").End(xlDown).Row
- If Sh(1).Range("B" & i) <> "" Then '非空白儲存格
- With Sh(3).QueryTables.Add(Connection:= _
- "URL;http://stockchannelnew.sinotrade.com.tw/z/zc/zcr/zcra/zcra_" & Sh(1).Range("B" & i) & ".djhtm", Destination:=Sh(3).Range("B1"))
- '.Name = "0000000" '名稱以數字開頭,會自動加上"_" 為 "_0000000"
- .WebSelectionType = xlSpecifiedTables
- .WebFormatting = xlWebFormattingNone
- .WebTables = "1"
- .WebPreFormattedTextToColumns = True
- .WebConsecutiveDelimitersAsOne = True
- .WebSingleBlockTextImport = False
- .WebDisableDateRecognition = False
- .WebDisableRedirections = False
- .Refresh BackgroundQuery:=False
- End With
- With Sh(3).QueryTables(1)
- Application.StatusBar = i - 9 & " - " & .ResultRange.Range("b2") & " 股東權益報酬率 完成"
- If .ResultRange.Rows.Count > 5 Then
- Sh(2).Range("b1").End(xlDown).Offset(1, -1).Resize(, .ResultRange.Columns.Count) = .ResultRange.Rows(16).Value
- Sh(2).Range("b1").End(xlDown).Offset(, -1) = Sh(1).Range("C" & i)
- Sh(2).Range("b1").End(xlDown).Offset(, -1).Activate
- Else
- Sh(2).Range("b1").End(xlDown).Offset(1) = "查無 " & .ResultRange.Range("b2") & " 財務比率表資料(合併年表)"
- End If
- .ResultRange.Clear '清除匯入外部的資料
- Sh(3).Names(.Name).Delete '刪除自動新增的名稱
- .Delete '刪除 QueryTable 物件
- End With
- End If
- Next
- End Sub
複製代碼 |
|