返回列表 上一主題 發帖

載入歷年股利政策

載入歷年股利政策

您好
就教各位
這一份資料是我在網路上找到的
現在我要把它修改成可以載入各股10年股利
資料下載處我已經修改過了
但我現在不會把TXT檔”合計”的資料載入
有人可以幫我嘛
謝謝!!

TEST.rar (83.2 KB)

TEST.rar (83.2 KB)

回復 2# GBKEE

感謝版大
我在研究看看

TOP

  1. Sub 載入數據_全部()
  2. Dim y&, Ym&
  3. Set MySht = Sheets("查詢表")
  4. y = MySht.[A65536].End(xlUp).Row:  If y < 4 Then Exit Sub
  5. MySht.[B4:IV65536].ClearContents
  6. MySht.[A2] = ">>>>>資料載入中,請稍候......"
  7. Application.ScreenUpdating = False
  8. For Each uRng In MySht.Range("A4:A" & y)
  9.     Ym = Ym + 1
  10.     Application.StatusBar = "■■■執行數據載入中." & Ym & "/" & y - 3
  11.     If uRng <> "" Then Call 取得個股資訊
  12. Next
  13. MySht.Select
  14. Application.StatusBar = False
  15. MySht.[A2] = ""
  16. Call 個股資訊格式設定: Beep
  17. End Sub

  18. Sub 載入數據_個股()
  19. Set MySht = Sheets("查詢表")
  20. Set uRng = ActiveCell
  21. If uRng.Row < 4 Or uRng.Column > 1 Or uRng = "" Then
  22.    MsgBox "※請先選取個股編號!":   Exit Sub
  23. End If
  24. Application.ScreenUpdating = False
  25. Call 取得個股資訊: Call 個股資訊格式設定
  26. If GetInfo = "ERR" Then uRng(1, 2) = "《無資料》"
  27. MySht.Select
  28. Beep
  29. End Sub

  30. Sub 查看個股資訊()
  31. Set MySht = Sheets("查詢表")
  32. Set uRng = ActiveCell
  33. If uRng.Row < 4 Or uRng.Column > 1 Or uRng = "" Then
  34.    MsgBox "※請先選取個股編號!":   Exit Sub
  35. End If
  36. Application.ScreenUpdating = False
  37. Call 匯入文字檔: Call 個股資訊格式設定
  38. If GetInfo = "ERR" Then uRng(1, 2) = "《無資料》"
  39. End Sub

  40. Sub 匯入文字檔()
  41. Dim uObj As Object, uFF As Object
  42. GetInfo = ""
  43. uFile = ThisWorkbook.Path & "\TextFile\" & uRng.Text & ".txt"
  44. If Dir(uFile) = "" Then GetInfo = "ERR": Exit Sub
  45. Set uObj = CreateObject("Scripting.FileSystemObject")
  46. Set uFF = uObj.OpenTextFile(uFile)
  47. XMLText = uFF.Readall: uFF.Close:  Call 放入剪貼簿
  48. With Sheets("個股資訊")
  49.      Application.Goto .[A1], True:  .Cells.Clear
  50.      .[B1].Select: .Paste: [B1].Select
  51.      .[B1].Replace " *", "", Lookat:=xlPart
  52. End With
  53. End Sub

  54. Sub 個股資訊格式設定()
  55. With Sheets("個股資訊").UsedRange
  56.      .Borders.LineStyle = 1:  .ColumnWidth = 13: .RowHeight = 13.5
  57.      .Font.Size = 10: .Font.Name = "新明細體": .WrapText = False
  58. End With
  59. End Sub

  60. Sub 取得個股資訊()
  61. Dim fRng As Range, uTxt$, i&, j&, Jm%, xR As Range, xC%
  62. uRng(1, 2).Resize(1, 40).ClearContents
  63. xC = MySht.[IV3].End(xlToLeft).Column: If xC = 1 Then Exit Sub
  64. Set WebSht = Sheets("個股資訊")
  65. Call 匯入文字檔
  66. If GetInfo = "ERR" Then uRng(1, 2) = "《無資料》": Exit Sub
  67. If InStr(WebSht.[B1], uRng) = 0 Then uRng(1, 2) = "《無資料》": Exit Sub
  68. '-----------------------------------------
  69. uRng(1, 2).Value = WebSht.[B1]
  70. uRng(1, 2).Replace uRng, ""
  71. '-----------------------------------------
  72. For j = 3 To xC
  73.     uTxt = MySht.Cells(3, j): If uTxt = "" Then GoTo 101
  74.     Set fRng = WebSht.Cells.Find(uTxt, Lookat:=xlPart)
  75.     If fRng Is Nothing Then GoTo 101
  76.     If uTxt = "現金股利" Or uTxt = "合計" Then
  77.        uRng(1, j).Resize(1, 4).Value = Application.Transpose(fRng(2, 2).Resize(4, 1).Value)
  78.     ElseIf uTxt = "每股淨值" Then
  79.        With uRng(1, j): .Value = fRng: .Replace "每股淨值:* ", "": End With
  80.     Else
  81.        uRng(1, j) = fRng(1, 6)
  82.     End If
  83. 101: Next j
  84. '-----------------------------------------
  85. uRng(1, 6).Resize(1, xC).Replace "元", ""
  86. End Sub

  87. Sub 放入剪貼簿() '將取得文字放入剪貼簿
  88. '〔剪貼簿〕設定引用項目 Microsoft Forms 2.0 Object Library
  89. Dim DOB As New DataObject
  90. With DOB: .Clear: .SetText XMLText: .PutInClipboard: End With
  91. End Sub

  92. Sub 清除()
  93. If MsgBox("※確定要清除全部內容嗎?", 4 + 32 + 256) = vbNo Then Exit Sub
  94. [B4:IV65536].ClearContents
  95. End Sub
複製代碼
這是我昨天修改的方式
給各位參考看看

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題