ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¥i§_¥Î°j°é©ÎÅܼƶפJ¤j¶q¸ê®Æ¡H

¦^´_ 27# GBKEE
GBKEEª©¥D¦­¦w¡A¦³¨Ç°ÝÃD·Q½Ð±Ð±z¡G
1.¤µ¦­¤U¯Z¦^¨Ó´N°¨¤W¸Õ¤F±z¬Q¤Ñ¦b27#´£¨Ñªºµ{¦¡½X¡A§Ú¦³¦A¥[¤W­n¸õ¹Lªº¥N¸¹¦bAR¤¤¡A¤]·Ó´£¥Ü±N¥N¸¹³£¿é¤J¨ìsheet(2)ªºAÄæ
ª½±µ¶]¤@¦¸¡A©_©Çªº¨Æµo¥Í¤F¡A§Ú³]©wFor E = 1101 to 5000¡A¨C¦¸¶]¨ì¤@¥b®É´N·|¥X¿ù¡A¥X¿ùªº¦ì¸m¬O¦bIf UBound(Filter(AR, E)) > -1 And UBound(AR) > -1 Then¡A¤£²M·¡­þ¸Ì¥X¤F°ÝÃD
ªþ¤Wµ{¦¡½X©MÀɮסA½Ð±zÀ°¦£¬Ý¬Ý¡@
2.¥t¥~§Ú¦³µo²{±z27#ªºµ{¦¡½X¦b¥X¿ù«eªº°õ¦æ®É³t«×«D±`§Ö¡A©M±z¥ý«e´£¨Ñªºµ{¦¡½XÅý§Ú¦b23#§¹¦¨ªºµ{¦¡¦³«Ü¤jªº¸¨®t¡A³o·í¤¤¨s³º¦³¤°»ò®t²§©O¡H¬°¤°»ò³t«×·|®t³o»ò¦h©O¡H
¤@¼Ë§Ú¨â­ÓVBAµ{¦¡³£¦³ªþ¤W¡A¤]³Â·Ð±zÀ°¦£¬Ý¬Ý¬°¤°»ò·|¦³¦p¦¹¤jªº®t²§
3.§Ú¥Î±z¥ý«e´£¨Ñªº¶]¤U¨Ó¡A²Ä¤@¬q1101 to 5000¡A¶O®É12¤À48¬í¡A§ì¤F992µ§¸ê®Æ
²Ä¤G¬q5001 to 9962¡A¶O®É13¤À50¬í¡A§ì¤F515µ§¸ê®Æ
§Ú¦b¶]²Ä¤G¬q®É¦³¥ý¨Ï¥Î²M°£¨t²Îªº.batÀÉ¡A¨Ã±NEXCELÃö³¬¦A¶}±Ò­«·s°õ¦æVBA¡Aµ²ªG¬Ý¨Ó¨Ã¨S¦³½G¨­ªº®ÄªG¡A¤£ª¾¹D¬°¤°»ò·|³o¼Ë¡H
4.¥t¥~¦b±N¸ê®Æ¶×¤Jtxtªºµ{¦¡½X¤¤¡A¦p¤U
   For Each E In Q.ResultRange.Rows
        C = Application.Transpose(Application.Transpose(E.Value))
        C = Join(C, vbTab)
        fs.WriteLine C
    Next
¨ä¤¤Q.ResultRange.RowsªºRows¬O¤£¬O¥Nªí¦C¡A¤]´N¬O±N¸ê®Æ¤@¦C¤@¦C¦s¤Jtxt¡Aª½¨ì¨S¦³¸ê®Æ¬°¤î
¤§«á§Ú¦³·Q¨ì¡A¦]¬°¥Î¤@¦C¤@¦Cªº¤è¦¡¨Ó¶×¤J¸ê®Æ­n¶]«Ü¦h¦¸°j°é¡A¦pªG¬O¥Î¤@Äæ¤@Ä檺¤è¦¡¶×¤J´N·|¤Ö¶]«Ü¦h¦¸°j°é
§Ú¦³¸ÕµÛ±NRows§ï¬°Columns¡A¦ý°õ¦æ¨ì¤U¤G¦æªºC = Join(C, vbTab)´N·|¥X¿ù¡A¤£ª¾¹D¦³¨S¦³¿ìªk¥ÎÄ檺¤è¦¡¶×¤J©O¡H

°ÝÃD¦³ÂI¦h¡A¦A³Â·Ð±zÀ°¦£¤@¤UÅo¡I·PÁ¡I
  1. Option Explicit
  2. Sub §ì©u¤ëÀ禬¸ê®Æ()
  3.     Dim E As Integer, URL As String, xPath As String, xFile As String
  4.     Dim i As Integer, ii As Integer, Rng As Range, S1 As String, S2 As String, t As Date
  5.     Dim AR()
  6.     t = Time
  7.     AR = Array(1202, 1420, 1433, 1502, 1518, 1610, 1716, 2346, 2372, 2391, 2513, 2526, 2541, 2802, 2803, 2804, 2806, _
  8.             2813, 2814, 2815, 2817, 2818, 2819, 2821, 2826, 2830, 2839, 2840, 2843, 2844, 2848, 2907, 2909, 4101, 4112, _
  9.             4175, 4201, 4203, 4204, 4301, 4302, 4405, 4407, 4409, 4410, 4411, 4412, 4504, 4505, 4507, 4508, 4509, 4512, _
  10.             4514, 4516, 4517, 4519, 4520, 4521, 4524, 4525, 4531, 4603, 4604, 4605, 4606, 4607, 4608, 4701, 4704, 4705, _
  11.             4708, 4709, 4710, 4713, 4715, 4718, 4901, 4902, 5001, 5003, 5004, 5005, 5012, 5101, 5311, 5319, 5320, 5322, _
  12.             5323, 5327, 5330, 5331, 5334, 5335, 5337, 5341, 5342, 5354, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5366, _
  13.             5368, 5369, 5374, 5377, 5379, 5380, 5382, 5389, 5391, 5393, 5394, 5396, 5397, 5399, 5404, 5405, 5408, 5409, _
  14.             5411, 5412, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5427, 5428, 5430, 5431, 5433, 5435, _
  15.             5440, 5444, 5445, 5446, 5447, 5449, 5453, 5456, 5458, 5459, 5461, 5462, 5463, 5470, 5472, 5476, 5477, 5482, _
  16.             5485, 5486, 5495, 5496, 5499, 5509, 5517, 5527, 5606, 5705, 5804, 5805, 5806, 5807, 5809, 5812, 5814, 5815, _
  17.             5854, 6003, 6006, 6019, 6102, 6106, 6401, 6501, 8001, 8003, 8903, 8904, 8912, 8914, 8915, 8918, 8920, 8922, 8939, 9105, 9909)
  18.             '¿é¤J 4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªºªÑ²¼¸¹½X
  19.     URL = "URL;https://djinfo.cathaysec.com.tw/Z/ZC/ZCH/ZCH.DJHTM?A="
  20.     xPath = "G:\°]³ø¸ê®Æ"
  21.     With ThisWorkbook
  22.         .Sheets(2).UsedRange.Offset(, 1).Clear
  23.         '4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªºªÑ²¼¸¹½X ³o¨Ç ªÑ²¼¦WºÙ(¥N¸¹) ³sÄò¤@°_¿é¤J¦bSheets(2)ªºAÄæ
  24.         Set Rng = .Sheets(2).Range("A:A").SpecialCells(xlCellTypeConstants)
  25.         If Rng Is Nothing Then
  26.             AR = Array()
  27.         ElseIf Rng.Count = 1 Then
  28.             AR = Array(Rng.Value)
  29.         Else
  30.             AR = Application.Transpose(Application.Transpose(Rng))
  31.         End If        '***************************************************
  32.         Application.ScreenUpdating = False
  33.         Application.StatusBar = " "
  34.         With .Sheets(1)      '¬¡­¶Ã¯ªº²Ä 1 ±i¤u§@ªí
  35.             If .QueryTables.Count = 0 Then
  36.                 With .QueryTables.Add(Connection:=URL, Destination:=.Range("$A$1"))
  37.                     .Refresh BackgroundQuery:=False
  38.                 End With
  39.             End If
  40.                 .Rows(1).Delete
  41.                 .Columns(1).Delete
  42.             For E = 1101 To 5000
  43.                 With .QueryTables(1)
  44.                     .Connection = URL & E
  45.                     .PreserveFormatting = True
  46.                     .BackgroundQuery = True
  47.                     .RefreshStyle = xlInsertDeleteCells
  48.                     .SaveData = True
  49.                     .AdjustColumnWidth = True
  50.                     .RefreshPeriod = 0
  51.                     .WebSelectionType = xlSpecifiedTables
  52.                     .WebFormatting = xlWebFormattingNone
  53.                     .WebTables = "3"
  54.                     .WebPreFormattedTextToColumns = True
  55.                     .WebConsecutiveDelimitersAsOne = True
  56.                     .Refresh BackgroundQuery:=False
  57.                     If .ResultRange(1) < 0 Or InStr(.ResultRange(2, 1), "¬dµL") Then GoTo xLnext
  58.                     '¶×¤J¸ê®Æªº A1 < 0  OR  ¶×¤J¸ê®Æªº A2 "¬dµL"
  59.                     S1 = .ResultRange(1)
  60.                     S2 = Mid(S1, 1, InStr(S1, "(") - 1) 'ªÑ²¼¦WºÙ
  61.                 End With
  62.                 With ThisWorkbook.Sheets(2).Range("B:B")
  63.                     Set Rng = .Find(S2, lookat:=xlPart) '·j´M:ªÑ²¼¦WºÙ
  64.                     If Rng Is Nothing Then
  65.                         i = i + 1
  66.                         .Range("A" & i) = S1  'ªÑ²¼¦WºÙ¥N½X
  67.                     Else
  68.                         Rng.Cells(1, 2) = S1   '­«½ÆªºªÑ²¼
  69.                         If UBound(Filter(AR, E)) > -1 And UBound(AR) > -1 Then
  70.                         'Filter(AR, E) > -1   '¤ñ¹ï¨ì¦p4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~
  71.                             Rng.Cells(1, 2) = Rng.Cells(1, 2) & "***" '«á§ì¨ú¬O¿ù»~
  72.                             GoTo xLnext:
  73.                         End If
  74.                         S2 = Mid(Trim(Rng), InStr(Trim(Rng), "(") + 1)
  75.                         S2 = Mid(S2, 1, Len(S2) - 1)    'ªºªÑ²¼[¥N½X]
  76.                         xFile = xPath & "\" & S2 & "\*.*" '±þ±¼©Ò¦³ÀÉ®×
  77.                         If Dir(xFile) <> "" Then
  78.                             ii = ii - 1
  79.                             Kill xFile
  80.                             xFile = xPath & "\" & S2
  81.                             If Dir(xFile, vbDirectory) <> "" Then RmDir xFile '¸ê®Æ§¨¤]§R°£¤F
  82.                         End If
  83.                     End If
  84.                 End With
  85.                 ii = ii + 1
  86.                 xFile = xPath & "\" & E & "\REVENUE.txt"
  87.                 MkDir_Sub xFile
  88.                 Maketxt xFile, .QueryTables(1)
  89. xLnext:
  90.                 S1 = " " & Sheets(1).QueryTables(1).ResultRange(1)
  91.                 If Val(S1) < 0 Then S1 = " ¬dµL"
  92.                 Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & "  " & E & S1
  93.             Next
  94.         End With
  95.     End With
  96.     Application.ScreenUpdating = True
  97.     Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " Ok "
  98.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - t, ["MM¤ÀSS¬í"])
  99. End Sub
  100. Private Sub MkDir_Sub(s As String)
  101.     Dim AR, i As Integer, xPath As String
  102.     If Dir(s) = "" Then
  103.         AR = Split(s, "\")
  104.         xPath = AR(0)
  105.         For i = 1 To UBound(AR) - 1
  106.             xPath = xPath & "\" & AR(i)
  107.             If Dir(xPath, vbDirectory) = "" Then MkDir xPath
  108.         Next
  109.     End If
  110. End Sub
  111. Private Sub Maketxt(xF As String, Q As QueryTable)   '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  112.     Dim fs As Object, E As Range, C As Variant
  113.     Set fs = CreateObject("Scripting.FileSystemObject")
  114.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  115.     For Each E In Q.ResultRange.Rows
  116.         C = Application.Transpose(Application.Transpose(E.Value))
  117.         C = Join(C, vbTab)
  118.         fs.WriteLine C
  119.     Next
  120.     fs.Close
  121. End Sub
½Æ»s¥N½X
¨â­Ó¤ëÀ禬VBA.zip (38.38 KB)

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-28 07:29 ½s¿è

¦^´_ 35# GBKEE
·PÁÂGBKEEª©¥D³o´X¤Ñ¨Ó¤£Â_ªº±Ð¾É¡A¯uªºÅý§Ú¦bEXCEL VBA¤W¾Ç²ß¨ì«Ü¦h¡A¨ä¥L¤´¦³³\¦h»Ý­nÂ^¨úªº¸ê®Æ¡A¦p¸ê²£­t¶Åªí ²{ª÷¬y¶qªíµ¥¡A³o¨Ç§Ú³£¯à¥Î³o´X¤Ñ¾Ç¨ìªº
µy¥[­×§ï´N¯à§¹¦¨¡A°ß¿W¦³¨âºØ¸ê®Æ¤ñ¸û¯S§O¡A§ÚµLªk¿W¥ß§¹¦¨¡A©Ò¥H¤S­n¦A¨Ó½Ð±ÐGBKEEª©¥D¤F
1.
¤WÂd¤ë¦¨¥æ¸ê°T

¡@¤W­±³sµ²¬°¤WÂd­ÓªÑ¤ë¦¨¥æ¸ê°T¡A§Y¨Ï¿é¤J­ÓªÑ¥N¸¹¡Aºô§}¤´¤£ÅÜ¡A¾Ú¤F¸Ñ¬O¦]¬°ºô­¶¬°POST¡A¨Ã«DGET¡A©Ò¥H¨S¿ìªkÂ^¨ú³øªí
¡@¤£ª¾¹D¦³¨S¦³¿ìªk¤]¥ÎVBA°µ°j°é¨ÓÂ^¨ú¸ê®Æ¡H(¦bEXCEL¶×¤JWEB¸ê®Æ®É¦ü¥G¨Sªkµ¥¨ì¤U­±ªº¦¨¥æ¸ê°Tªí®æ¨Ó¶×¤J¸ê°T)
2.½Ð¥ó¨â­ÓEXCELªþ¥ó¡A³o¬O¦bºô¸ô¤W­±§ä¨ìªº¡A¥D­n¬O­n§ì¤@¦~¤ºªº¶°«O¸ê®Æ¡A¦ý³£¥u¯à¥Î¦Û¦æ¿é¤Jªº¤è¦¡¨Ó¤@­Ó¤@­ÓÂ^¨ú¸ê®Æ
¡@¤£ª¾¹D¦³¨S¦³¿ìªk¤]¥ÎÃþ¦ü³o¨â¤Ñ±z©Ò´£¨Ñªºµ{¦¡½X¨Ó§ì¨ú¶°«O¸ê®Æ¡Aµ²ªG´N¦pªþ¥ó¤¤ªºTXTÀÉ¡A¦A³Â·Ð±z«üÂI¤@¤UÅo¡I·PÁ¡I
   
¶°«O¸ê®Æ


[attach]18178[/attach]

TOP

¦^´_ 35# GBKEE
©êºp Àɮפ£ª¾¹D¬°¤°»ò¤W¶Ç¥¢±Ñ ©Ò¥H¦A¤W¶Ç¤@¦¸
¶°«O¸ê®Æ.zip (74.96 KB)

TOP

¦^´_ 38# GBKEE
GBKEEª©¥D±z¦n¡A³o­Óµ{¦¡½X§Ú¦³¸Õ¤F¡A¥i¥H¦¨¥\¡A¤£¹L¤£ª¾¹D¬°¤°»ò¶]°_¨Ó«D±`ºC¡A¤WÂd¤½¥q²Î­p¦@663®a¡A§Ú±N¥¦¿é¤J¨ìSheets(3)ªºAÄæ
¶]¤@­Ó¤å¦rÀɪº®É¶¡¤j¬ù­n4-5¬í¡A½T©w¦³²M²z¨t²Î¤F¡A¤£¹LÁÙ¬O«D±`ºC
¥t¥~¦³¿ìªk¹³¤§«e±N¶×¤J¸ê®ÆÅã¥Ü¦bEXCEL¥H«K³v¦æ°õ¦æ®É¥i¥H¬Ý¥XEXCEL¦p¦óÅܤơA³Â·Ð±z¤F¡AÁÂÁ¡I
  1. Option Explicit
  2. Dim IE As Object
  3. Sub IE_Application()
  4.     Set IE = CreateObject("InternetExplorer.Application")
  5.     With IE
  6.         .Navigate "http://www.gretai.org.tw/ch/stock/statistics/monthly/st42.php"
  7.      '   .Visible = True   '¤£Åã¥Üie
  8.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  9.   End With
  10. End Sub
  11. Sub ¤WÂd¤ë¦¨¥æ¸ê°T()
  12.     Dim E As Range, xPath As String, xFile As String, A As Object, fs As Object, F As Object, IE_URL As String
  13.     Dim i As Integer, ii As Integer, t As Date, AR(), Rng As Range, r, C, S
  14.     Set fs = CreateObject("Scripting.FileSystemObject")
  15.     IE_URL = "http://www.gretai.org.tw/ch/stock/statistics/monthly/st42.php"
  16.     t = Time
  17.     Application.DisplayStatusBar = True
  18.     '½Ð±N¤WÂdªºªÑ²¼¥N¸¹,¦b Sheets(3).Range("A1")©¹¤UKey¤W,°j°é¨Ì³o¸ÌªºªÑ²¼¥N¸¹¶×¤J
  19.     Set Rng = ThisWorkbook.Sheets(3).Range("A:A")
  20.     If Application.Count(Rng) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  21.     Set Rng = Rng.SpecialCells(xlCellTypeConstants)
  22.     xPath = "G:\°]³ø¸ê®Æ"
  23.     IE_Application    '
  24.     Application.StatusBar = " "
  25.     For Each E In Rng
  26.         With IE
  27.             Set A = .Document.getelementbyid("input_stock_code")
  28.             A.Value = E
  29.             A.ParentNode.submit
  30.             Do While .Busy Or .ReadyState <> 4:    Loop
  31.             Set A = .Document.getelementsbytagname("TABLE")
  32.             xFile = xPath & "\" & E & "\HPM.txt"
  33.             MkDir_Sub xFile
  34.             With fs.CreateTextFile(xFile, True)
  35.                 For i = 1 To A(2).Rows.Length - 1
  36.                     S = ""
  37.                     For C = 0 To A(2).Rows(i).Cells.Length - 1
  38.                         S = S & A(2).Rows(i).Cells(C).innertext & vbTab
  39.                     Next
  40.                     .WriteLine S
  41.                 Next
  42.                 .Close
  43.             End With
  44.             ii = ii + 1
  45.         End With
  46.         Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤WÂd¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ"
  47.     Next
  48.     IE.Quit
  49.     Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤WÂd¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ,  Åª¨ú§¹²¦ !! "
  50.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - t, ["MM¤ÀSS¬í"])
  51.     ThisWorkbook.Save
  52. End Sub
  53. Sub MkDir_Sub(S As String)
  54.     Dim AR, i As Integer, xPath As String
  55.     If Dir(S) = "" Then
  56.         AR = Split(S, "\")
  57.         xPath = AR(0)
  58.         For i = 1 To UBound(AR) - 1
  59.             xPath = xPath & "\" & AR(i)
  60.             If Dir(xPath, vbDirectory) = "" Then MkDir xPath
  61.         Next
  62.     End If
  63. End Sub
  64. Sub Maketxt(xF As String, Q As QueryTable)   '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  65.     Dim fs As Object, E As Range, C As Variant
  66.     Set fs = CreateObject("Scripting.FileSystemObject")
  67.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  68.     For Each E In Q.ResultRange.Rows
  69.         C = Application.Transpose(Application.Transpose(E.Value))
  70.         C = Join(C, vbTab)
  71.         fs.WriteLine C
  72.     Next
  73.     fs.Close
  74. End Sub
½Æ»s¥N½X

TOP

¦^´_ 40# GBKEE
ª©¥D±z¦n¡A­è­è±N¹q¸£Ãö³¬«á­«·s¶}±Ò«á¦A­«·s°õ¦æVBA¡Aµ²ªG«Ü¤£¿ù¡A¤@­Ó¥­§¡¤@¬í¦h¡A¥i¯à¤§«e§Ú¦b°õ¦æVBA®É¶}±Ò¤Ó¦h¨ä¥L³nÅé¤F

³o­Ó¬OÂ^¨ú¦~¦¨¥æ¸ê°T¡AÁÙ¦³¤@­Ó¤ë¦¨¥æ¸ê°T¡A¦]¬°¤ë¦¨¥æ¸ê°T¬O­nÂI¤ë¥÷¨Ó¿ï¾Ü¡A§Ú·|¥ý¦Û¤v°µ¬Ý¬Ý¡A¤£¦æªº¸Ü·|¦A¨Ó¦V±z°Q±Ð
¥t¥~±zªþ¤Wªº¶°«O¸ê®Æ§ÚÁÙ¨S¸Õ¡A±ß¤W·|§Q¥Î®É¶¡¨Ó¸Õ¸Õ¡A¤£¹L§Ú¦³µy·LºË¤F¤@¤U¡A¦³¬Ý¨ìINPUT BOX¡A¦]¬°§Ú¬O­n¥Î°j°é³sÄòÂ^¨ú¸ê®Æ
¤£¬O­n¥ÎINPUT BOX¿é¤J¥N½X¨ÓÂ^¨ú¸ê®Æ¡A¤]¤£»Ý­nªþÀɪº¹Ï¡A¥u»Ý­n¤å¦rÀɤº®e§Y¡A¤£ª¾¹D§Ú¬O§_¸ÑŪ¿ù»~¡A·|§Q¥Î®É¶¡¤F¸Ñ¬Ý¬Ý¡A¦A¦¸·PÁ±z¡I

TOP

¦^´_ 38# GBKEE
GBKEEª©¥D¦­¦w¡A§Ú¦b§ì¤W¥«­ÓªÑ¦~¦¨¥æ¸ê°T¤S¹J¨ì°ÝÃD¤F¡A­ì¥»¬O·Q§Q¥Î±z¦b37#ªº§ì¨ú¤WÂd¦~¦¨¥æªºµ{¦¡½X¨Ó­×§ï¡A¦ý«o¥X¿ù¡A¯à½Ð±z¦AÀ°¦£¬Ý¤@¤U¶Ü¡H
¥t¥~¦]¬°§Æ±æ±N¶×¤J¸ê®ÆªºEXCELªí®æ°µ¤@¨Ç­×§ï¦A¦s¤Jtxt¡A©Ò¥H§Ú¤]¦³¥Î¥ý«e§ì¨ä¥L¸ê®ÆªºVBA¨Ó´ú¸Õ¡A¦ý¦]¬°¥ý«e³sµ²ªººô¯¸¬O°ê®õÃÒ¨é¡A»Ý­nªº¸ê®Æ¥u­n±N
³Ì«áªº­ÓªÑ¥N½X³]©w¦¨°j°éÅܼơA´N¯à±N¸ê®Æ¤@­Ó¤@­ÓÂ^¨ú¤U¨Ó¡A¦ý¤W¥«¦~¦¨¥æ¸ê°Tªººô­¶¤£¬O³o¼Ëªº®æ¦¡¡A©Ò¥H¤£²M·¡¸Ó«ç»ò°µ°j°é³]©wÂ^¨ú¸ê°T
½Ð±z¦A«üÂI¤@¤U¡A¦pªG¥i¥Hªº¸Ü¡A§Æ±æ¨âºØ³£¯à¾Ç¡Aªþ¤W¨â­ÓEXCEL VBA¥H¤Î³sµ²ªº¸ê°T
test.zip (37.88 KB)

"URL;https://djinfo.cathaysec.com.tw/Z/ZC/ZCC/ZCC.DJHTM?A=2330"    >>>>>>>>>³o¬O¥ý«e§Q¥Î°ê®õÃҨ鰵ªº³sµ²ºô§}¡A¥u­n±N³Ì«á§ï¦¨°j°éÅܼƴN¥i¥H¤F

"URL;http://www.twse.com.tw/ch/trading/exchange/FMNPTK/genpage/Report201404/2330_F3_1_11.php?STK_NO=2330&myear=2014&mmon=04"
³o¬OÃÒ¥æ©Ò¤W¥«­ÓªÑ2330ªº¦~¦¨¥æ¸ê°T³sµ²¡A¤£ª¾¹D¦³¨S¦³¿ìªk¥Î°j°éÅܼưµ³sµ²

"URL;http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php"      >>>>>>>>>>>>>>³o¬OÃÒ¥æ©Ò¤W¥«­ÓªÑ¦~¦¨¥æ¸ê°T­º­¶


³o±i¹Ï´N¬O·Q­n§ìªºªí®æ¡A¤W­±¦³´£¨ì§Æ±æ¯à¥ý¶×¨ìEXCEL¦A¦s¨ì¤å¦rÀÉ´N¬O§Æ±æ¦~ªº¶¶§Ç¥i¥H¤Ï¹L¨Ó¡A¤]´N¬O¶V·sªº¦~«×±Æ¶V¤W­±¡A¥t¥~¸ê®Æ¦b¶×¤JEXCEL«á·|±N
(¤¸,ªÑ)¤]Åܦ¨¤@¦C¡A³o¤@¦C¤]§Æ±æ¯à§R°£

TOP

¦^´_ 43# GBKEE
¤£¦n·N«ä¡AGBKEEª©¥D¡A½Ð°Ý¬O·j´M http://www.twse.com.tw/ch/trading/exchange/FMNPTK/FMNPTKMAIN.php³o¦r¦ê¶Ü¡H
¦]¬°§Ú¦bª©¤W·j¯Á³o¦r¦ê¬O¬dµLµ²ªGªº¡A©Ò¥H·Q¸ò±z½T»{¤@¤U¡A§Ú¤]·Q¦n¦n¾Ç²ßºô­¶«Ø¸m¤£¦P¤Wªº®t§O¦b­þ¡HÁÂÁ±z¡I

TOP

¦^´_ 43# GBKEE
«¢Åo¡IGBKEEª©¥D¡A¤S¨Ó¦V±z°Q±ÐÅo¡IÃö©ó¦b43#ªºµ{¦¡½X¦bsheet(3)ªºAÄæ®M¥Î¤W¥«­ÓªÑ¥N¸¹«á¬O¥i¦æªº¡A¦ý­Y§Ú·Q±Nºô§}§ï¦¨¤ë¦¨¥æ¸ê°T
·|¦h¤F¤@­Ó"¦~"¬d¸ßÄæ¡A¤S¸Ó¦p¦ó³]©w"¦~"ªº¬d¸ßÄæ¦ì¥i¥H¦h¬d´X¦~©O¡H¨Ò¦p­º­¶¬Oª½±µ¸õ¥X103¦~¡A¦A¿é¤JªÑ²¼¥N½X§Y¥i¬d¸ß¡A§Ú·Q±N102¦~¡B101¦~ªº¸ê®Æ
¤]¤@°_¶×¤J¡AÀ³¸Ó«ç»ò°µÅܤƩO¡H§Ú·QÃöÁä¬O¤£¬O¦b¥H¤Uªºµ{¦¡½X¡A¦]¬°¹ï¤º®eªº»yªk¤£¤Ó¤F¸Ñ¡A©Ò¥H·Q¦A¨Ó½Ð±Ð±z¤@¤U¡I
§Ú­Yª½±µ±N¤ë¦¨¥æ¸ê°Tªººô§}±a¤J¡A¥u¯à¶×¤J103¦~ªº¸ê®Æ¡A¤£ª¾¹D¬O¤£¬O¦U¦~«×ªº¤ë¦¨¥æ¸ê°T¯à¹³ªÑ²¼¥N½X¤@¼Ë¦bsheet(3)ªº¬YÄæ¦ì¿é¤J·í¦¨°j°é
´N¯à¶×¤J»Ý­nªº¸ê®Æ¡A¨Ò¦p§Ú·Q­n103¡B102¡B101¡B100¦~ªº¤ë¦¨¥æ¸ê°T¡A´N¦bsheet(3)ªºBÄæ±q¤W©¹¤Ukey¤J¡A¦A°µ¤@¨Çµ{¦¡½XªºÅܧó´N¯àÅýµ{¦¡¥h¨Ì·Ó
sheet(3)ªºBÄæ¿é¤Jªº¦~¥÷¶×¤J¤ë¦¨¥æ¸ê°T¡A¤£ª¾³o¼Ëªº·Qªk¹ï¤£¹ï¡A¦A½Ð±z«üÂI¤@µf¡IÁÂÁ¡I
¡@¡@¡@Do While .Busy Or .ReadyState <> 4:    Loop
            Set A = .Document.getelementbyid("STK_NO")
            A.Value = E
             .Document.getelementSbyNAME("login_btn")(0).Click  '«ö¤U¬d¸ß
            Do While .Busy Or .ReadyState <> 4:    Loop
            Set A = .Document.getelementsbytagname("TABLE")


¤WÂd¤ë¦¨¥æ¸ê°T





¤W¥«¤ë¦¨¥æ¸ê°T

TOP

¦^´_ 38# GBKEE
GBKEEª©¥D±z¦n¡A¤S¨Ó¦V±z°Q±Ð¤F¡A¦]¬°¥ý«e¤£À´¬°¤°»ò¬d¸ß¤W¥«»P¤WÂd¦~¦¨¥æ¸ê°TªºVBAµ{¦¡½X¤¤¤À§O¦³"STK_NO"»P"input stock code"¡A¤§«á¤~·Q¨ì¬O­n¥h§äºô­¶­ìÖí½X
ÁöµM¤j³¡¤À³£¬Ý¤£À´¡A¤£¹L½T¹ê¬O¤À§O¦b¤W¥«»P¤WÂd¦~¦¨¥æ¸ê°Tªººô­¶­ì©l½X¤¤§ä¨ì¤W­z¨â­Ó¦r¦ê¡A§Ú·Q³oÀ³¸Ó¬O¥²©w­n¼g¦bVBA¤¤ªºÃöÁä¦r¦ê¡A«á¨Ó¥h¬d¤F¤@¤U¤WÂdªº¤ë¦¨¥æ¸ê°T
¦³¬Ý¨ì¦h¥X¤é´ÁÄ檺¦r¦ê¡A´ú¸Õ¤F±N¦r¦ê¼g¤JVBA¡A¦ý«o·|¥X¿ù¡A¹Á¸Õ¦h¦¸Åܧ󤴵Lªk¶¶§Q°õ¦æ¡A¤£ª¾¸Ó¦p¦ó±N³o¨Ç¦r¦ê¥¿½T¦a¼g¤JVBA¡A·íµM¤W¥«ªº¤ë¦¨¥æ¸ê°T
´ú¸Õµ²ªG¤]©M¤WÂdªº¤@¼Ë¡A³£¬OµL¥\¦Óªð¡A©Ò¥H¥u¯à¦A«×¥oÂZ±z¤F¡AÀµ½Ð±z¦A¦¸½ç±Ð¡A·PÁ¡I
test.zip (17.84 KB)

¤WÂd¦~¦¨¥æ¸ê°T


¤WÂd¤ë¦¨¥æ¸ê°T

TOP

¦^´_ 47# GBKEE
·PÁª©¥D­@¤ßªº¦^µª¡A¬Ý¤F¤å³¹¤§«á¡A¤j·§¤F¸Ñ¤F¬Û¹ï¤Þ¼ÆªºÃöÁä¦r¡A¤]¦³¸ÕµÛ±N¬Û¹ï¤Þ¼Æ"select"©M"yy"¥N¤J¡Aµ²ªG¬O¥i¦æªº
¤£¹L¦³ÂI°ÝÃD¡G
1.¦b°j°é°õ¦æµ{¦¡®É¬O·|¨Ì·Ó§Ú¦bsheet(3) BÄæ¿é¤Jªº¦~¥÷¶×¤J¤å¦rÀÉ¡A¤£¹L¤U¤@¦~¥÷ªº¸ê®Æ¤S·|Âл\­ì¨Óªº¤å¦rÀɤº®e
    ¨Ò¦p§Ú¦bsheet(3) BÄæ¿é¤Jªº¦~¥÷¬O2014¡B2013¡B2012¡Aµ²ªG2014ªº¼g§¹«á¦A¼g¤U¤@µ§ªº2013´N·|§â­ì¨Ó¼g¤Jªº2014Âл\±¼
    ¤£ª¾¹D¯à¤£¯à±N¤T¦~ªº¸ê®Æ³£¼g¤J¤å¦rÀÉ¡H
2.¦~¥÷°j°é¬O§_¥u¯à§Q¥Î¹³­ÓªÑ¥N¸¹¤@¼Ë¦bsheet(3) ¬YÄæ¿é¤J·Q­nÂ^¨úªº¦~¥÷¸ê®Æ¡A¯à¤£¯àª½±µ¼g¤JVBA¤¤©O¡H
3.¼g¤Jªº¤å¦rÀɬO±q¶}©l¦³¼Æ¦r¸ê®Æ®É¼g°_¡A¤£ª¾¹D¯à¤£¯à¥Ñ³Ì¤W¤è­ÓªÑ¥N¸¹¨º¤@¦C¶}©l¼g¤J¡A¤]´N¬O¤å¦rÀɤ¤·|¬Ý±o¨ì­ÓªÑ¥N¸¹
4.¦]¬°³o­ÓVBAµ{¦¡¬Oª½±µ±N¸ê®Æ¼g¤J¤å¦rÀÉ¡AµLªk¬Ý¨ì¸ê®Æ¶×¤JEXCELªº°Ê§@¡A¤£ª¾¹D¯à¤£¯à°µ¤é´Á±Æ§Ç
    ¨Ò¦p¼g¤Jªº²Ä¤@¦~¥÷¸ê®Æ¥Ñ¤W¨ì¤U¬O103¦~1¤ë¥÷¨ì103¦~5¤ë¥÷¡A¤£ª¾¹D¯à¤£¯à±N5¤ë¥÷¼g¨ì³Ì¤W¤è
§Ú·Q°ÝÃD·|³o»ò¦h¡AÀ³¸Ó¬O§ÚVBA°ò¦ÁÙ¨S¥´¦n´N«æ©ó¾Ç²ß§ó¶i¶¥ªºªF¦è¡A¬Ý¨Ó§Ú¥i¯à±o¦h¬Ý¨Ç®Ñ¡B¤å³¹¡B¼v¤ù¥R¹ê¦Û¤vªºVBA°ò¦¡A«Ü·PÁª©¥D³s¤é¨Ó¤£¹½¨ä·Ðªº¦^µª¡I

  1. Option Explicit
  2. Dim IE As Object
  3. Sub IE_Application()
  4.     Set IE = CreateObject("InternetExplorer.Application")
  5.     With IE
  6.         .Navigate "http://www.gretai.org.tw/ch/stock/statistics/monthly/st44.php"
  7.      '   .Visible = True   '¤£Åã¥Üie
  8.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  9.   End With
  10. End Sub
  11. Sub ¤WÂd¤ë¦¨¥æ¸ê°T()
  12.     Dim E, X As Range, xPath As String, xFile As String, A, B As Object, fs As Object, F As Object, IE_URL As String
  13.     Dim i As Integer, ii As Integer, t As Date, AR(), Rng, Rng1 As Range, r, C, S
  14.     Set fs = CreateObject("Scripting.FileSystemObject")
  15.     IE_URL = "http://www.gretai.org.tw/ch/stock/statistics/monthly/st44.php"
  16.     t = Time
  17.     Application.DisplayStatusBar = True
  18.     '½Ð±N¤WÂdªºªÑ²¼¥N¸¹,¦b Sheets(3).Range("A1")©¹¤UKey¤W,°j°é¨Ì³o¸ÌªºªÑ²¼¥N¸¹¶×¤J
  19.     Set Rng = ThisWorkbook.Sheets(3).Range("A:A")
  20.     Set Rng1 = ThisWorkbook.Sheets(3).Range("b:b")
  21.     If Application.Count(Rng) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  22.     If Application.Count(Rng1) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  23.     Set Rng = Rng.SpecialCells(xlCellTypeConstants)
  24.     Set Rng1 = Rng1.SpecialCells(xlCellTypeConstants)
  25.     xPath = "D:\°]³ø¸ê®Æ"
  26.     IE_Application    '
  27.     Application.StatusBar = " "
  28.     For Each E In Rng
  29.         For Each X In Rng1
  30.             With IE
  31.                 Set B = .document.getelementsbytagname("select")("yy")
  32.                 B.Value = X
  33.                 Set A = .document.getelementbyid("input_stock_code")
  34.                 A.Value = E
  35.                 A.ParentNode.submit
  36.                 Do While .Busy Or .ReadyState <> 4:    Loop
  37.                 Set A = .document.getelementsbytagname("TABLE")
  38.                 xFile = xPath & "\" & E & "\HPM.txt"
  39.                 MkDir_Sub xFile
  40.                 With fs.CreateTextFile(xFile, True)
  41.                     For i = 1 To A(2).Rows.Length - 1
  42.                         S = ""
  43.                         For C = 0 To A(2).Rows(i).Cells.Length - 1
  44.                             S = S & A(2).Rows(i).Cells(C).innertext & vbTab
  45.                         Next C
  46.                         .WriteLine S
  47.                     Next i
  48.                     .Close
  49.                 End With
  50.             ii = ii + 1
  51.             End With
  52.         Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤WÂd¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ"
  53.         Next X
  54.     Next E
  55.     IE.Quit
  56.     Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤WÂd¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ,  Åª¨ú§¹²¦ !! "
  57.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - t, ["MM¤ÀSS¬í"])
  58.     ThisWorkbook.Save
  59. End Sub
  60. Sub MkDir_Sub(S As String)
  61.     Dim AR, i As Integer, xPath As String
  62.     If Dir(S) = "" Then
  63.         AR = Split(S, "\")
  64.         xPath = AR(0)
  65.         For i = 1 To UBound(AR) - 1
  66.             xPath = xPath & "\" & AR(i)
  67.             If Dir(xPath, vbDirectory) = "" Then MkDir xPath
  68.         Next
  69.     End If
  70. End Sub
  71. Sub Maketxt(xF As String, Q As QueryTable)   '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  72.     Dim fs As Object, E As Range, C As Variant
  73.     Set fs = CreateObject("Scripting.FileSystemObject")
  74.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  75.     For Each E In Q.ResultRange.Rows
  76.         C = Application.Transpose(Application.Transpose(E.Value))
  77.         C = Join(C, vbTab)
  78.         fs.WriteLine C
  79.     Next
  80.     fs.Close
  81. End Sub
½Æ»s¥N½X
test2.zip (17.73 KB)

TOP

        ÀR«ä¦Û¦b : ¤f»¡¦n¸Ü¡B¤ß·Q¦n·N¡B¨­¦æ¦n¨Æ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD