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

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

¦^´_ 85# GBKEE
¤£¦n·N«ä¡A§Ú°õ¦æ«á¦ü¥G·|¥d¦b¹Ï¤¤ªº°j°é¡A¤£ª¾¯à§_½Ð±z°õ¦æ¬Ý¬Ý¬O§_¦³¤@¼Ë±¡§Î©O¡H

  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.twse.com.tw/ch/trading/exchange/FMSRFK/FMSRFKMAIN.php"
  7. '        .Visible = True   '¤£Åã¥Üie
  8.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  9.   End With
  10. End Sub
  11. Sub ¤W¥«¤ë¦¨¥æ¸ê°T()
  12.     Dim Rng As Range, Rng1 As Range, E As Range, X As Range, T As Date, xPath As String, xFile As String
  13.     Dim Ea As Variant, ar(), ii, aa As Integer
  14.     T = Time
  15.     Application.DisplayStatusBar = True
  16.     '½Ð±N¤W¥«ªºªÑ²¼¥N¸¹,¦b Sheets(3).Range("A1")©¹¤UKey¤W,°j°é¨Ì³o¸ÌªºªÑ²¼¥N¸¹¶×¤J
  17.     Set Rng = ThisWorkbook.Sheets(3).Range("A:A")
  18.     Set Rng1 = ThisWorkbook.Sheets(3).Range("b:b")
  19.     If Application.Count(Rng) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  20.     If Application.Count(Rng1) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  21.     Set Rng = Rng.SpecialCells(xlCellTypeConstants)
  22.     Set Rng1 = Rng1.SpecialCells(xlCellTypeConstants)
  23.     xPath = "F:\°]³ø¸ê®Æ"
  24.     IE_Application    '
  25.     Application.StatusBar = " "
  26.     For Each E In Rng
  27. MR:
  28.         With Sheets(1)
  29.             .Activate
  30.             .Cells.Clear  '¤U¸ü¸ê®Æ¸m©ó¦¹¤u§@ªí,ÅÜ´«ªÑ²¼®É:²MªÅ
  31.         End With
  32.         For Each X In Rng1
  33.             With IE
  34.                 .Document.getElementsByTagName("select")("Yy").Value = X
  35.                 'yy -> ¦~«×,mm -> ¤ë¥÷, dd -> ¤é´Á
  36.                 .Document.getelementsbyname("stockNo")(0).Value = E
  37.                 'ªÑ²¼¥N½X  stockNo  '**¤j¤p¼g­n¤@­P**
  38. '                .Document.getelementsbyname("query-button")(0).Click  '«ö¤U¬d¸ß
  39.                 For Each Ea In .Document.body.all.tags("a")
  40.                     If Ea.classname = "button search" Then
  41.                         Ea.Click: Exit For  '«ö¤U¬d¸ß
  42.                     End If
  43.                 Next
  44.                 Do While .Busy Or .readyState <> 4:    Loop
  45.                 On Error Resume Next
  46.                 If InStr(.Document.getElementsByTagName("TABLE")(3).outerHTML, "¬dµL") Then GoTo Nn
  47.                 If .Document.getElementsByTagName("TABLE")(3).Rows.Length > 1 Then
  48.                     Ep .Document.getElementsByTagName("TABLE")(3).outerHTML
  49.                 Else
  50.                     GoTo Nn
  51.                 End If
  52. '                If InStr(Selection.Cells(3, 1), "¬dµL") Then Selection.Delete Shift:=xlUp: GoTo Nn
  53.             End With
  54.         With Sheets(1)
  55.             aa = Selection.Range("a3")
  56. '            If aa = "" Then aa = Selection.Range("a1")    '·|¥X¿ù¤~¥[¤J³o¬q
  57.             If aa + 1911 <> X Then GoTo MR
  58.         End With
  59.         Next X
  60. Nn:
  61.         If Sheets(1).Range("a1") = "" Then GoTo KK
  62.         xFile = xPath & "\" & E & "\HPM.txt"
  63.         MkDir_Sub xFile
  64.         Maketxt xFile, Sheets(1).Range("A1").CurrentRegion, E.Value
  65.         ii = ii + 1
  66.         Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¶×¤J¤W¥«¤ë¦¨¥æ " & E & "¦@" & ii & " ¤å¦rÀÉ"
  67. KK:
  68.     Next E
  69.     IE.Quit
  70.     Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤W¥«¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ,  Åª¨ú§¹²¦ !! "
  71.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - T, ["MM¤ÀSS¬í"])
  72. '    ThisWorkbook.Save
  73. End Sub
  74. Sub Ep(S As String)
  75.     Dim D As New DataObject, i As Integer, FormDLL As String, Rng As Range
  76.     'DataObject ª«¥ó ¦b¶i¦æÂà´«°Ê§@®É¡A°µ¬°®æ¦¡¤Æ¤å¦r¸ê®Æªº¼È¦s°Ï°ì¡C¨ä¤]¥i¥H¼È¦s©MÀx¦s¦b DataObject ªº¤å¦r¤ù¬q¬ÛÃöªº®æ¦¡¡C
  77.     '«Å§i Dim D As New DataObject '¶·¦b¤u¨ã-> ³]©w¤Þ¥Î¶µ¥Ø¥[¤J ·s¼W¤Þ¥Î Microsoft Forms 2.0 Object Library ,±M®× ¥[¤J¤@ªí³æ§Y¥i
  78.     On Error GoTo ER
  79.     With D
  80.         .SetText S
  81.         .PutInClipboard
  82.         With Sheets(1)
  83.             With .Range("a" & .Rows.Count).End(xlUp)
  84.                 If .Row = 1 Then
  85.                     Set Rng = .Cells
  86.                 Else
  87.                     Set Rng = .Offset(1)
  88.                 End If
  89.                 Rng.Select
  90.                 .Parent.PasteSpecial Format:="Unicode ¤å¦r"
  91.                 Set Rng = Rng.Range("A3", Rng.Range("A3").End(xlDown)).Resize(, 9)
  92.                 With Sheets(1).Sort
  93.                     .SetRange Rng
  94.                     .Header = xlGuess
  95.                     .MatchCase = False
  96.                     .Orientation = xlTopToBottom
  97.                     .SortMethod = xlPinYin
  98.                     .Apply
  99.                 End With
  100.                 'Sort :¸ê®Æ±Æ§Ç
  101. '                Rng.Sort Key1:=Rng.Range("B2"), Order1:=xlDescending, Header:=xlYes ', _
  102.                 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
  103.                 :=xlStroke, DataOption1:=xlSortNorma
  104. '                If .Row = 1 Then
  105. '                    .Range("A2").EntireRow.Delete
  106. '                Else
  107. '                    .Range("A2:A4").EntireRow.Delete
  108. '                End If
  109.             End With
  110.         End With
  111.     End With
  112.     Exit Sub
  113. ER:
  114.     ThisWorkbook.VBProject.References.AddFromFile "C:\windows\system32\FM20.DLL"
  115.     Resume
  116. End Sub
  117. Sub Maketxt(xF As String, Q As Range, Code As String)     '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  118.     Dim fs As Object, E As Range, C As Variant, A As String, B As Integer, D As String
  119.     Set fs = CreateObject("Scripting.FileSystemObject")
  120.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  121.     A = Q.Cells(1)
  122.     B = Len(A)
  123.         If B >= 25 Then
  124.             D = Mid(A, 11, 4)
  125.         Else
  126.             D = Mid(A, 11, 2)
  127.         End If
  128.     Q.Cells(1) = Code & "-" & D & "" & " ¤ë¦¨¥æ¸ê®Æ"   '¥[¤JªÑ²¼¥N¸¹
  129.     If Q.Cells(3, 1).Offset(1) = "" Then GoTo EE
  130.     Q.Range("a3", Q.Range("a3").End(xlDown)).Replace "¦~«×", ""
  131.     Q.Columns(1).SpecialCells(xlCellTypeBlanks).Offset(-1).EntireRow.Delete
  132.     Q.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  133. EE:
  134.     For Each E In Q.Rows
  135.         C = Application.Transpose(Application.Transpose(E.Value))
  136.         C = Join(C, vbTab)
  137.         fs.Write C
  138.     Next
  139.     fs.Close
  140. End Sub
  141. Sub MkDir_Sub(S As String)
  142.     Dim ar, i As Integer, xPath As String
  143.     If Dir(S) = "" Then
  144.         ar = Split(S, "\")
  145.         xPath = ar(0)
  146.         For i = 1 To UBound(ar) - 1
  147.             xPath = xPath & "\" & ar(i)
  148.             If Dir(xPath, vbDirectory) = "" Then MkDir xPath
  149.         Next
  150.     End If
  151. End Sub
½Æ»s¥N½X
¤W¥«¤ë¦¨¥æ¸ê°T.zip (39.22 KB)

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2017-6-15 15:14 ½s¿è

  1. For Each X In Rng1
  2.             With IE
  3.                 .Document.getElementsByTagName("select")("Yy").Value = X
  4.                 'yy -> ¦~«×,mm -> ¤ë¥÷, dd -> ¤é´Á
  5.                 .Document.getelementsbyname("stockNo")(0).Value = E
  6.                 'ªÑ²¼¥N½X  stockNo  '**¤j¤p¼g­n¤@­P**
  7.               '  .Document.getelementsbyname("query-button")(0).Click  '«ö¤U¬d¸ß
  8.                 For Each Ea In .Document.body.all.tags("a")
  9.                     If Ea.classname = "button search" Then
  10.                         Ea.Click: Exit For  '«ö¤U¬d¸ß
  11.                     End If
  12.                 Next
  13.                 Do While .Busy Or .readyState <> 4:    Loop
  14.                 On Error Resume Next
½Æ»s¥N½X
¦^´_ 84# smart3135
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 56# GBKEE
¤£¦n·N«ä¡A¥Ñ©ó¤µ¦~ÃÒ¥æ©Òºô§}¤j§ïª©¡A­ì¥»ªº§ì¸ê®Æµ{¦¡½X³£·|¥X¿ù¡A¦³¸ÕµÛ¬Ýºô­¶­ì©l½X­×§ïµ{¦¡½X
µL©`¥\¤O¤Ó²LÁÙ¬O¨S¿ìªk¡A¤£ª¾¹D¬O§_ÁÙ¦³¾÷·|½Ðª©¥D«üÂI¤@¤U¨s³º¸Ó¦p¦ó­×§ï©O¡H
¤W¥«¦~¤ë¦¨¥æ¸ê°T.zip (62.39 KB)
  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.twse.com.tw/ch/trading/exchange/FMSRFK/FMSRFKMAIN.php"
  7. '        .Visible = True   '¤£Åã¥Üie
  8.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  9.   End With
  10. End Sub
  11. Sub ¤W¥«¤ë¦¨¥æ¸ê°T()
  12.     Dim Rng As Range, Rng1 As Range, E As Range, X As Range, T As Date, xPath As String, xFile As String
  13.     Dim Ea As Variant, ar(), ii, aa As Integer
  14.     T = Time
  15.     Application.DisplayStatusBar = True
  16.     '½Ð±N¤W¥«ªºªÑ²¼¥N¸¹,¦b Sheets(3).Range("A1")©¹¤UKey¤W,°j°é¨Ì³o¸ÌªºªÑ²¼¥N¸¹¶×¤J
  17.     Set Rng = ThisWorkbook.Sheets(3).Range("A:A")
  18.     Set Rng1 = ThisWorkbook.Sheets(3).Range("b:b")
  19.     If Application.Count(Rng) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  20.     If Application.Count(Rng1) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  21.     Set Rng = Rng.SpecialCells(xlCellTypeConstants)
  22.     Set Rng1 = Rng1.SpecialCells(xlCellTypeConstants)
  23.     xPath = "F:\°]³ø¸ê®Æ"
  24.     IE_Application    '
  25.     Application.StatusBar = " "
  26.     For Each E In Rng
  27. MR:
  28.         With Sheets(1)
  29.             .Activate
  30.             .Cells.Clear  '¤U¸ü¸ê®Æ¸m©ó¦¹¤u§@ªí,ÅÜ´«ªÑ²¼®É:²MªÅ
  31.         End With
  32.         For Each X In Rng1
  33.             With IE
  34.                 .Document.getElementsByTagName("select")("query_year").Value = X
  35.                 .Document.getelementsbyname("CO_ID")(0).Value = E
  36.                 .Document.getelementsbyname("query-button")(0).Click  '«ö¤U¬d¸ß
  37.                 Do While .Busy Or .readyState <> 4:    Loop
  38.                 On Error Resume Next
  39.                 If InStr(.Document.getElementsByTagName("TABLE")(3).outerHTML, "¬dµL") Then GoTo Nn
  40.                 If .Document.getElementsByTagName("TABLE")(3).Rows.Length > 1 Then
  41.                     Ep .Document.getElementsByTagName("TABLE")(3).outerHTML
  42.                 Else
  43.                     GoTo Nn
  44.                 End If
  45. '                If InStr(Selection.Cells(3, 1), "¬dµL") Then Selection.Delete Shift:=xlUp: GoTo Nn
  46.             End With
  47.         With Sheets(1)
  48.             aa = Selection.Range("a3")
  49.             If aa = "" Then aa = Selection.Range("a1")    '·|¥X¿ù¤~¥[¤J³o¬q
  50.             If aa + 1911 <> X Then GoTo MR
  51.         End With
  52.         Next X
  53. Nn:
  54.         If Sheets(1).Range("a1") = "" Then GoTo KK
  55.         xFile = xPath & "\" & E & "\HPM.txt"
  56.         MkDir_Sub xFile
  57.         Maketxt xFile, Sheets(1).Range("A1").CurrentRegion, E.Value
  58.         ii = ii + 1
  59.         Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¶×¤J¤W¥«¤ë¦¨¥æ " & E & "¦@" & ii & " ¤å¦rÀÉ"
  60. KK:
  61.     Next E
  62.     IE.Quit
  63.     Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤W¥«¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ,  Åª¨ú§¹²¦ !! "
  64.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - T, ["MM¤ÀSS¬í"])
  65. '    ThisWorkbook.Save
  66. End Sub
  67. Sub Ep(S As String)
  68.     Dim D As New DataObject, i As Integer, FormDLL As String, Rng As Range
  69.     'DataObject ª«¥ó ¦b¶i¦æÂà´«°Ê§@®É¡A°µ¬°®æ¦¡¤Æ¤å¦r¸ê®Æªº¼È¦s°Ï°ì¡C¨ä¤]¥i¥H¼È¦s©MÀx¦s¦b DataObject ªº¤å¦r¤ù¬q¬ÛÃöªº®æ¦¡¡C
  70.     '«Å§i Dim D As New DataObject '¶·¦b¤u¨ã-> ³]©w¤Þ¥Î¶µ¥Ø¥[¤J ·s¼W¤Þ¥Î Microsoft Forms 2.0 Object Library ,±M®× ¥[¤J¤@ªí³æ§Y¥i
  71.     On Error GoTo ER
  72.     With D
  73.         .SetText S
  74.         .PutInClipboard
  75.         With Sheets(1)
  76.             With .Range("a" & .Rows.Count).End(xlUp)
  77.                 If .Row = 1 Then
  78.                     Set Rng = .Cells
  79.                 Else
  80.                     Set Rng = .Offset(1)
  81.                 End If
  82.                 Rng.Select
  83.                 .Parent.PasteSpecial Format:="Unicode ¤å¦r"
  84.                 Set Rng = Rng.Range("A3", Rng.Range("A3").End(xlDown)).Resize(, 9)
  85.                 With Sheets(1).Sort
  86.                     .SetRange Rng
  87.                     .Header = xlGuess
  88.                     .MatchCase = False
  89.                     .Orientation = xlTopToBottom
  90.                     .SortMethod = xlPinYin
  91.                     .Apply
  92.                 End With
  93.                 'Sort :¸ê®Æ±Æ§Ç
  94. '                Rng.Sort Key1:=Rng.Range("B2"), Order1:=xlDescending, Header:=xlYes ', _
  95.                 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
  96.                 :=xlStroke, DataOption1:=xlSortNorma
  97. '                If .Row = 1 Then
  98. '                    .Range("A2").EntireRow.Delete
  99. '                Else
  100. '                    .Range("A2:A4").EntireRow.Delete
  101. '                End If
  102.             End With
  103.         End With
  104.     End With
  105.     Exit Sub
  106. ER:
  107.     ThisWorkbook.VBProject.References.AddFromFile "C:\windows\system32\FM20.DLL"
  108.     Resume
  109. End Sub
  110. Sub Maketxt(xF As String, Q As Range, Code As String)     '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  111.     Dim fs As Object, E As Range, C As Variant, A As String, B As Integer, D As String
  112.     Set fs = CreateObject("Scripting.FileSystemObject")
  113.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  114.     A = Q.Cells(1)
  115.     B = Len(A)
  116.         If B >= 25 Then
  117.             D = Mid(A, 11, 4)
  118.         Else
  119.             D = Mid(A, 11, 2)
  120.         End If
  121.     Q.Cells(1) = Code & "-" & D & "" & " ¤ë¦¨¥æ¸ê®Æ"   '¥[¤JªÑ²¼¥N¸¹
  122.     If Q.Cells(3, 1).Offset(1) = "" Then GoTo EE
  123.     Q.Range("a3", Q.Range("a3").End(xlDown)).Replace "¦~«×", ""
  124.     Q.Columns(1).SpecialCells(xlCellTypeBlanks).Offset(-1).EntireRow.Delete
  125.     Q.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  126. EE:
  127.     For Each E In Q.Rows
  128.         C = Application.Transpose(Application.Transpose(E.Value))
  129.         C = Join(C, vbTab)
  130.         fs.Write C
  131.     Next
  132.     fs.Close
  133. End Sub
  134. Sub MkDir_Sub(S As String)
  135.     Dim ar, i As Integer, xPath As String
  136.     If Dir(S) = "" Then
  137.         ar = Split(S, "\")
  138.         xPath = ar(0)
  139.         For i = 1 To UBound(ar) - 1
  140.             xPath = xPath & "\" & ar(i)
  141.             If Dir(xPath, vbDirectory) = "" Then MkDir xPath
  142.         Next
  143.     End If
  144. End Sub
½Æ»s¥N½X

¤W¥«¦~¤ë¦¨¥æ¸ê°T.zip (62.39 KB)

TOP

¦^´_  smart3135

¦bIE8¤U¥i°õ¦æ,½Ð¬Ý¬Ý§AªºIE [ºô»Úºô¸ô¿ï¶µ]»Ý­×§ï¤°»ò!!
GBKEE µoªí©ó 2015-2-11 16:10

Helloª©¥D¡A¸g½T»{¤§«áÀ³¸Ó¬O©M§Úªº¨t²Î°ÝÃD¦³Ãö«Y¡A¦]¬°¤µ¤Ñ­«Äé¹q¸£«á¡A¦A¥Î­ì¨Óªºµ{¦¡½X¶]¤@¦¸
´N¬O³Ì­ì©lªº¨º­ÓVBA¡AÁÙ¥¼¥[¤J±z­×§ïªºµ{¦¡½X´N¥i¥H¶¶§Q°õ¦æ¤F¡A¤£¹LÁÙ¬O¤S¸ò±z¦h¾Ç¨ì¤@¨Ç¤F¡A·PÁ¡I

TOP

¦^´_ 81# smart3135

¦bIE8¤U¥i°õ¦æ,½Ð¬Ý¬Ý§AªºIE [ºô»Úºô¸ô¿ï¶µ]»Ý­×§ï¤°»ò!!
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ smart3135 ©ó 2015-2-11 08:33 ½s¿è
¦^´_  smart3135
GBKEE µoªí©ó 2015-2-10 17:29

ª©¥D±z¦n¡A¦³¸ÕµÛ®M¥Î±zªºµ{¦¡½X¡A¦ý¦b¥[¤JRefresh«á·|¥X²{¤U¹Ï¿ù»~


­Y¬O±NRefreshµù¸Ñ¸õ¹L¡A¬O¥i¥H¶¶§Q°õ¦æ¡A¤£¹L¦³®É­Ô¶]¨ì¤@¥bªº®É­Ô´N¤£°Ê¤F¡A¦ü¥G¬O¦b°õ¦æµL­­°j°é
¥²¶·­n«öESC±j¨î°±¤î¡A¦A«ö°»¿ù´N·|¸õ¨ìDo While .Busy Or .ReadyState <> 4:    Loop³o¬qµ{¦¡½X
À³¸Ó´N¬O³o¬qµ{¦¡½X¦b°õ¦æµL­­°j°é



¤W¥«¦~¦¨¥æ¸ê°T.zip (27.04 KB)

TOP

¦^´_ 79# smart3135
  1. For Each E In Rng
  2.         With IE
  3.             Do While .Busy Or .ReadyState <> 4:    Loop
  4.             .Document.getelementbyid("STK_NO").Value = E
  5.             .Document.getelementSbyNAME("login_btn")(0).Click '«ö¤U¬d¸ß
  6.             Do While .Busy Or .ReadyState <> 4:    Loop
  7.             .Refresh  'ºô­¶ »Ý­«·s¾ã²z ,¤~¦³¸ê®Æ¤U¸ü
  8.             Do While .Busy Or .ReadyState <> 4:    Loop
  9.             Set a = .Document.getelementsbytagname("TABLE")
  10.             Do While a.Length <> 14:   Loop    'ª½¨ì a¤¸¯Àªº¤l¶µ¥Ø¦³14­Ó
  11.             xFile = xPath & "\" & E & "\HPY.txt"
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_  smart3135
GBKEE µoªí©ó 2014-5-26 17:13

GBKEEª©¥D±z¦n¡A¥h¦~¦³¦V±z½Ð±Ð¦p¦ó¥Î°j°é§ì¨úªÑ¥«¤j¶q¸ê®Æ¡AÀ°§U«D±`¤j¡A¤µ¦~¤w¸g¦³·sªº¦~«×¸ê®Æ¡A§Ú·Q­n§ì¨ú·sªº¦~«×¸ê®Æ
¦ý¤£ª¾¹D¬°¤°»ò¥h¦~«×¥i¥H¥¿±`°õ¦æªºVBAµ{¦¡½X¡A¨ì¤F¤µ¦~«o·|¤@ª½¥X¿ù¡A§Ú¹Á¸Õ·s¼W¡B§R°£¡BÅܧó¤@¨Çµ{¦¡½X¡A¦ý³£µL®Ä
¯à¤£¯à½Ð±z¦A¦¸À°¦£¬Ý¬Ýµ{¦¡½X¦³¤°»ò°ÝÃD¶Ü¡H·PÁ±z¡I
¤W¥«¦~¦¨¥æ¸ê°T.zip (22.07 KB)
¥X¿ù¹Ï

TOP

¦^´_ 74# smart3135
  1. Option Explicit
  2. Dim IE As Object, A As Integer
  3. Sub IE_Application()
  4.     Dim I As Integer
  5.     Set IE = CreateObject("InternetExplorer.Application")
  6.     With IE
  7.         .Navigate "http://www.tdcc.com.tw/smWeb/QryStock.jsp"
  8.         .Visible = True   '¤£Åã¥Üie
  9.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  10.         'Ū¨ú¶°«O¤áªÑÅv¤À´²ªí¬d¸ßªº¸ê®Æ¤é´ÁÁ`­Ó¼Æ
  11.         A = .document.getelementsbytagname("select")("SCA_DATE").Length - 1
  12.   End With
  13. End Sub
  14. Sub ¶°«O()
  15.     Dim Rng As Range, E As Range, x As Variant, T As Date, xPath As String, xFile As String
  16.     Dim Ea As Variant, ii As Integer, F As String, H As String, J As Integer
  17.     Dim StockNo  As Object
  18.     T = Time
  19.     Application.DisplayStatusBar = True
  20.     '½Ð±N¤WÂdªºªÑ²¼¥N¸¹,¦b Sheets(3).Range("A1")©¹¤UKey¤W,°j°é¨Ì³o¸ÌªºªÑ²¼¥N¸¹¶×¤J
  21.     Set Rng = ThisWorkbook.Sheets(3).Range("A:A")
  22.     If Application.Count(Rng) = 0 Then MsgBox "¨S¦³ªÑ²¼¥N¸¹": Exit Sub
  23.     Set Rng = Rng.SpecialCells(xlCellTypeConstants)
  24.     xPath = "D:\°]³ø¸ê®Æ"
  25.     IE_Application    '
  26.     Application.StatusBar = " "
  27.     For Each E In Rng
  28.             With Sheets(1)
  29.                 .Activate
  30.                 .Cells.Clear  '¤U¸ü¸ê®Æ¸m©ó¦¹¤u§@ªí,ÅÜ´«ªÑ²¼®É:²MªÅ
  31.             End With
  32.             For x = 0 To A
  33.                 With IE
  34.                     .document.getelementsbytagname("select")("SCA_DATE")(x).Selected = True
  35.                    '.document.getElementById("StockNo").Value = E  'getElementById©ó 2007¦³¿ù»~
  36.                     .document.ALL("StockNo").Value = E             'ALL ©ó2007¥i¦æ
  37.                     .document.getelementsbytagname("INPUT")("sub").Click  '«ö¤U¬d¸ß
  38.                     Do While .Busy Or .readyState <> 4
  39.                         .document.Focus
  40.                         Application.SendKeys "~", True ' «ö¤U½T©wÁä
  41.                     Loop
  42.                     Set StockNo = Nothing
  43.                     Do While StockNo Is Nothing
  44.                         Set StockNo = .document.getelementsbytagname("TABLE")
  45.                     Loop
  46.                     With StockNo
  47.                        If .Length <= 5 Then GoTo Nextx  '¬dµL¸ê®Æ
  48.                         If x = 0 Then Sheets(1).Cells(1) = .Item(5).INNERTEXT
  49.                         Ep .Item(6).INNERTEXT
  50.                         Ep .Item(7).outerHTML
  51.                     End With
  52.                 End With
  53.             Next x
  54. Nextx:
  55.             If Sheets(1).UsedRange.Rows.Count > 1 Then
  56.                 xFile = xPath & "\" & E & "\SHD.txt"
  57.                 MkDir_Sub xFile
  58.                 Maketxt xFile, Sheets(1).UsedRange, E.Value
  59.                 ii = ii + 1
  60.                 Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤W¥«¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ"
  61.             End If
  62.             Debug.Print IE.document.getelementsbytagname("TABLE").Length
  63.         Next E
  64.     IE.Quit
  65.     Application.StatusBar = Application.Text(Time - T, ["MM¤ÀSS¬í"]) & " ¦@¶×¤J¤W¥«¤ë¦¨¥æ " & ii & " ¤å¦rÀÉ,  Åª¨ú§¹²¦ !! "
  66.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - T, ["MM¤ÀSS¬í"])
  67. '    ThisWorkbook.Save
  68. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-5-26 17:15 ½s¿è

¦^´_ 75# smart3135
  1. Option Explicit
  2. Sub ¶°«O§¹¦¨()
  3.     Dim E As Range, X As Range, URL As String, xPath As String, xFile As String, rng As Range, rng1 As Range
  4.     Dim Msg As Boolean, I As Integer, t As Date, S As String, BB As String, CC As String, rng2 As Range
  5.     IE_Application  '§ó·s¶°«O¤áªÑÅv¤À´²ªí¬d¸ßªº¸ê®Æ¤é´Á
  6.     t = Time
  7.     URL = "URL;http://www.tdcc.com.tw/smWeb/QryStock.jsp?SCA_DATE="
  8.     BB = "&SqlMethod=StockNo&StockNo="
  9.     CC = "&sub=%ACd%B8%DF"
  10.     xPath = "D:\°]³ø¸ê®Æ"
  11.     With ThisWorkbook
  12.         With .Sheets(3)
  13.             Set rng = .Range("A1", .Range("A1").End(xlDown))
  14.             Set rng1 = .Range("B1", .Range("B1").End(xlDown))
  15.         End With
  16.         With .Sheets(1)      '¬¡­¶Ã¯ªº²Ä 1 ±i¤u§@ªí
  17.             If .QueryTables.Count = 0 Then
  18.                 With .QueryTables.Add(Connection:=URL, Destination:=.Range("$A$1"))
  19.                     .Refresh BackgroundQuery:=False
  20.                 End With
  21.             End If
  22.             
  23.             For Each E In rng
  24.                 With ThisWorkbook
  25.                 .Sheets(2).Cells.Clear
  26.                 .Sheets(1).Cells.Clear  '¤U¸ü¸ê®Æ¸m©ó¦¹¤u§@ªí,ÅÜ´«ªÑ²¼®É:²MªÅ
  27.             End With
  28.                 For Each X In rng1
  29.                     With .QueryTables(1)
  30.                         .Connection = URL & X & BB & E & CC
  31.                         .PreserveFormatting = True
  32.                         .BackgroundQuery = True
  33.                         .RefreshStyle = xlInsertDeleteCells
  34.                         .SaveData = True
  35.                         .AdjustColumnWidth = True
  36.                         .RefreshPeriod = 0
  37.                         .WebSelectionType = xlSpecifiedTables
  38.                         .WebFormatting = xlWebFormattingNone
  39.                         If X.Row = 1 Then
  40.                         .WebTables = "6,7,8"
  41.                         Else
  42.                             .WebTables = "7,8"
  43.                         End If
  44.                         On Error GoTo xlnext
  45.                         .WebPreFormattedTextToColumns = True
  46.                         .WebConsecutiveDelimitersAsOne = True
  47.                         .Refresh BackgroundQuery:=False
  48.                         If Sheets(2).Range("a1") = "" Then
  49.                             .ResultRange.Copy Sheets(2).Range("a" & Sheets(2).Rows.Count).End(xlUp)
  50.                         Else
  51.                             .ResultRange.Copy Sheets(2).Range("a" & Sheets(2).Rows.Count).End(xlUp).Offset(2, 0)
  52.                         End If
  53.                     End With
  54.                 Next
  55. xlnext:
  56.       
  57.                     xFile = xPath & "\" & E & "\SHD.txt"
  58.                     MkDir_Sub xFile       '10#ªºµ{¦¡ 'C¼Ñ¤Uªº©u·l¯qªí¸ê®Æ§¨¤£»Ý¥ý«Ø¥ß
  59.                     Maketxt xFile, Sheets(2).UsedRange
  60.                 I = I + 1
  61.                 Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & "  " & E & "¶×¤J" & I & "­Ó¤å¦rÀÉ"
  62.                 Msg = False
  63.             Next E
  64.         End With
  65.     End With
  66.     MsgBox "¦@¶×¤J ¤å¦rÀÉ" & I & " ¶O®É " & Application.Text(Time - t, ["MM¤ÀSS¬í"])
  67. End Sub
  68. Sub Maketxt(xF As String, Q As Range)   '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  69.     Dim fs As Object, E As Range, C As Variant
  70.     '*************************
  71.     Q.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete  '§R°£ªÅ¥Õ¦C
  72.     '*************************
  73.     Set fs = CreateObject("Scripting.FileSystemObject")
  74.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  75.     For Each E In Q.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
  82. Private Sub IE_Application() '§ó·s¶°«O¤áªÑÅv¤À´²ªí¬d¸ßªº¸ê®Æ¤é´Á
  83.     Dim IE As Object, A As Object, I As Integer
  84.     Set IE = CreateObject("InternetExplorer.Application")
  85.     With IE
  86.         .Navigate "http://www.tdcc.com.tw/smWeb/QryStock.jsp"
  87.         .Visible = True
  88.         Do While .Busy Or .readyState <> 4: DoEvents: Loop
  89.         'Ū¨ú¶°«O¤áªÑÅv¤À´²ªí¬d¸ßªº¸ê®Æ¤é´Á
  90.         Set A = .document.getelementsbytagname("option")
  91.        For I = 0 To A.Length - 1
  92.         ThisWorkbook.Sheets(3).Cells(I + 1, "B") = A(I).INNERTEXT
  93.        Next
  94.        .Quit
  95.   End With
  96. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : °µ¸Ó°µªº¨Æ¬O´¼¼z¡A°µ¤£¸Ó°µªº¨Æ¬O·Mè¡C
ªð¦^¦Cªí ¤W¤@¥DÃD