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

[µo°Ý] vba ¾Þ§@ie¶×¤J¸ê®Æ

¥»©«³Ì«á¥Ñ GBKEE ©ó 2013-5-19 15:36 ½s¿è

¦^´_ 1# randomwalk
³oºô­¶: µL½×¬O[³Ì·s¸ê®Æ] ©Î [¾ú¥v¸ê®Æ] ªº¸ê®Æ³£¤@¼Ë???
  1. Sub Ex()
  2.     Dim i As Integer, s As Integer, k As Integer, A, ii, j
  3.     Dim co_id As String, isnew As String, season As String
  4.     co_id = InputBox("½Ð¿é¤J ¤½¥q¥N¸¹")
  5.     If Not IsNumeric(Val(co_id)) Or Len(co_id) <> 4 Then Exit Sub              '¤£¬O¥|¦ì¼Æªº¼Æ¦r
  6.     isnew = InputBox("1:³Ì·s¸ê®Æ¡A¢±:¾ú¥v¸ê®Æ" & vbLf & "½Ð¿ï 1 , 2")
  7.     If isnew <> "1" And isnew <> "2" Then Exit Sub                              '¨S¿ï1 ©Î 2
  8.     If isnew = "2" Then season = InputBox("¿é¤J¦~«× , ©u§O" & vbLf & "¨Ò 101,01")
  9.                                     '²Ä¤@©u 01,²Ä¤G©u 02²Ä¤T©u 03,²Ä¥|©u 04.
  10.     With CreateObject("InternetExplorer.Application")
  11.         .Visible = True
  12.         .Navigate "http://mops.twse.com.tw/mops/web/t164sb04"
  13.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  14.         With .document
  15.             For Each A In .getelementsbytagname("INPUT")
  16.                 If A.Name = "co_id" Then A.Value = co_id
  17.             Next
  18.             For Each A In .getelementsbytagname("SELECT")
  19.                 If A.Name = "isnew" Then
  20.                     A.Value = True
  21.                     If isnew = "2" Then
  22.                         A.Focus
  23.                         Application.Wait Now + #12:00:02 AM#
  24.                         Application.SendKeys "{DOWN}"
  25.                         Application.Wait Now + #12:00:02 AM#
  26.                         Application.SendKeys "{ENTER}"
  27.                     End If
  28.                 End If
  29.                 If A.Name = "year" And isnew = "2" Then A.Value = Split(season, ",")(0)
  30.                 If A.Name = "season" And isnew = "2" Then A.Value = Split(season, ",")(1)
  31.             Next
  32.             For Each A In .getelementsbytagname("INPUT")
  33.                 If Trim(A.Value) = "·j´M" And A.Name <> "rulesubmit" Then A.Click        '«ö¤U[·j¯Á]Áä
  34.             Next
  35.         End With
  36.         Application.Wait Now + #12:00:10 AM#                     'µ¥«Ýºô­¶¤U¸ü¸ê®Æ
  37.         Set A = .document.getelementsbytagname("table")
  38.         On Error Resume Next       '***¦³¨Çtable¨SRows¸ê®Æ·|²£¥Í¿ù»~ ¤£²z·|¥¦,µ{¦¡Ä~Äò¨«
  39.         With ActiveSheet
  40.             .Cells.Clear
  41.            '************************
  42.            ' For ii = 0 To A.Length - 1        '¤£ª¾¹Dtable½d³ò¦b¦ó³B: ±q0¶}©l
  43.            '******************************
  44.             For ii = 11 To A.Length - 1        ''±q11¶}©l ¥Î Debug.Print ii  §ä¥X©Ò­n¸ê®Æªºtable½d³ò
  45.                 For i = 0 To A(ii).Rows.Length - 1      '¼g¤J¸ê®Æ
  46.                 'Debug.Print ii  ¥i§ä¥X©Ò­n¸ê®Æªº table ½d³ò
  47.                 k = k + 1
  48.                 For j = 0 To 5
  49.                     Cells(k, j + 1) = A(ii).Rows(i).Cells(j).innerText
  50.                 Next
  51.             Next
  52.             Next
  53.             .Range("C5").Cut Range("D5")
  54.             With .Range("B5:C5,D5:E5")
  55.                 .HorizontalAlignment = xlCenter
  56.                 .VerticalAlignment = xlCenter
  57.                 .Merge
  58.             End With
  59.         End With
  60.         .Quit        'Ãö³¬ºô­¶
  61.     End With
  62. End Sub
½Æ»s¥N½X
  1. Option Explicit
  2. Dim ºô­¶ As Object
  3. Sub Ex²©ö¤â°Ê()
  4.     'µ{¦¡²Ä¤@¦¸°õ¦æ: ¥´¶}ºô­¶,¦bºô­¶¤¤¤â°Ê,¿ï¾Ü¸ê®Æ«á , «ö[·j´M]Áä!!
  5.     'µ{¦¡²Ä¤G¦¸°õ¦æ: Ū¨úºô­¶¸ê®Æ¨ì Excel¤¤.
  6.     '©¹«á¦bºô­¶¸ê®Æ¦³­×§ï,¥u»Ý°õ¦æ¤@¦¸§Y¥iŪ¨úºô­¶¸ê®Æ¨ì Excel¤¤.
  7.     Dim i As Integer, ii As Integer, k As Integer, j As Integer, A As Object
  8.     On Error GoTo REºô­¶
  9. 1:
  10.     If ºô­¶ Is Nothing Then
  11.         Set ºô­¶ = CreateObject("InternetExplorer.Application")
  12.          With ºô­¶
  13.             .Visible = True
  14.             .Navigate "http://mops.twse.com.tw/mops/web/t164sb04"
  15.             .Height = 500
  16.             .Width = 1300
  17.         End With
  18.         Application.WindowState = xlMinimized  'Excel ³Ì¤p¤Æ
  19.         Exit Sub
  20.     End If
  21.     If ºô­¶.Visible = False Then
  22.         ºô­¶.Value = True
  23.         Application.WindowState = xlMinimized
  24.         Exit Sub
  25.     End If
  26.     '**********Ū¨úºô­¶ ¸ê®Æ *******************
  27.     Set A = ºô­¶.document.getelementsbytagname("table")
  28.     With ActiveSheet                               '§@¥Î¤¤ªº¤u§@ªí
  29.          .Cells.Clear
  30.          On Error Resume Next
  31.         For ii = 11 To A.Length - 1                     
  32.             For i = 0 To A(ii).Rows.Length - 1      '¼g¤J¸ê®Æ
  33.                 k = k + 1
  34.                 For j = 0 To 5
  35.                     Cells(k, j + 1) = A(ii).Rows(i).Cells(j).innerText
  36.                 Next
  37.             Next
  38.         Next
  39.         .Range("C5").Cut .Range("D5")
  40.         With .Range("B5:C5,D5:E5")
  41.             .HorizontalAlignment = xlCenter
  42.             .VerticalAlignment = xlCenter
  43.             .Merge
  44.         End With
  45.     End With
  46. Exit Sub
  47. REºô­¶:   '
  48.      Set ºô­¶ = Nothing
  49.     Resume 1
  50. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 3# yuch8663
¦pªG­n¤@¦¸¿é¤J§ó¦h¤½¥q¥N¸¹Åýµ{¦¡¦Û°Ê¤U¸ü«á¥t¦s·sÀÉ
§A­n¦p¦ó¦sÀÉ? µ¹­Ó½d¨Ò¤~ª¾­n¦p¦ó­×§ï.
¦^´_ 4# randomwalk
§ïª©³Ì¤j´N¬O¤£Åý¥Î QueryTables.Add ¤j¶qŪ¨ú¸ê®Æ,§@¬y¶q±±ºÞªº.

¦p¹ÏºCºC¬ã¨s

   
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 7# cji3cj6xu6
½Ð¤W¶ÇÀÉ®×»¡©ú¤@¤U.
¨S¬Ý¨ì§¹¾ãªºµ{¦¡j§Ú¤]¤£¾é¸Ñ, ¬°¦ó¥u¦³²Ä¤@¶µªº¸ê®Æ·|¶i¤Jpage1¡A¨ä¥Lªºpage2 ~ page5 §¡¬°ªÅ¥Õ¡A
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 10# cji3cj6xu6
­×§ï¤@¤U IE¤£¥²¶}¶}ÃöÃö
  1. Option Explicit
  2. Sub Ex()
  3.     Dim i As Integer, s As Integer, k As Integer, A, ii, j
  4.     Dim co_id As String, isnew As String, season As String
  5.     Dim DQ As Integer, DQQ As Integer
  6.     With CreateObject("InternetExplorer.Application")
  7.         .Visible = True
  8.         .Navigate "http://mops.twse.com.tw/mops/web/t164sb04"
  9.         Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
  10.         DQQ = 6
  11.         For DQ = 1 To 5
  12.             co_id = Sheets(DQQ).Range("A" & DQ).Value
  13.             'Sheets(DQ).Select                  '¤£¥²¤@°Ê¤u§@ªí
  14.             isnew = 1
  15.             With .document
  16.                 For Each A In .getelementsbytagname("INPUT")
  17.                     If A.Name = "co_id" Then A.Value = co_id
  18.                 Next
  19.                 For Each A In .getelementsbytagname("SELECT")
  20.                     If A.Name = "isnew" Then
  21.                         A.Value = True
  22.                         If isnew = "2" Then
  23.                             A.Focus
  24.                             Application.Wait Now + #12:00:02 AM#
  25.                             Application.SendKeys "{DOWN}"
  26.                             Application.Wait Now + #12:00:02 AM#
  27.                             Application.SendKeys "{ENTER}"
  28.                         End If
  29.                     End If
  30.                     If A.Name = "year" And isnew = "2" Then A.Value = Split(season, ",")(0)
  31.                     If A.Name = "season" And isnew = "2" Then A.Value = Split(season, ",")(1)
  32.                 Next
  33.                 For Each A In .getelementsbytagname("INPUT")
  34.                     If Trim(A.Value) = "·j´M" And A.Name <> "rulesubmit" Then A.Click        '«ö¤U[·j¯Á]Áä
  35.                 Next
  36.             End With
  37.             Application.Wait Now + #12:00:10 AM#                     'µ¥«Ýºô­¶¤U¸ü¸ê®Æ
  38.             Set A = .document.getelementsbytagname("table")
  39.             On Error Resume Next       '***¦³¨Çtable¨SRows¸ê®Æ·|²£¥Í¿ù»~ ¤£²z·|¥¦,µ{¦¡Ä~Äò¨«
  40.             With Sheets(DQ)            '*** ª«¥ó : «ü©w¤u§@ªí  ****
  41.                 .Cells.Clear
  42.            '************************
  43.            ' For ii = 0 To A.Length - 1        '¤£ª¾¹Dtable½d³ò¦b¦ó³B: ±q0¶}©l
  44.            '******************************
  45.                 .[A1] = co_id
  46.                 k = 1
  47.                 For ii = 11 To A.Length - 1        ''±q11¶}©l ¥Î Debug.Print ii  §ä¥X©Ò­n¸ê®Æªºtable½d³ò
  48.                     For i = 2 To A(ii).Rows.Length - 1      '¼g¤J¸ê®Æ
  49.                         'Debug.Print ii  ¥i§ä¥X©Ò­n¸ê®Æªº table ½d³ò
  50.                         k = k + 1
  51.                         For j = 0 To 5
  52.                             .Cells(k, j + 1) = A(ii).Rows(i).Cells(j).innerText
  53.                         Next
  54.                     Next
  55.                 Next
  56.                 .Range("C2").Cut .Range("D2")
  57.             With .Range("B2:C2,D2:E2")
  58.           '  .Select
  59.                 .HorizontalAlignment = xlCenter
  60.                 .VerticalAlignment = xlCenter
  61.                 .Merge
  62.             End With
  63.             End With
  64.         Next DQ
  65.         .Quit        'Ãö³¬ºô­¶
  66.     End With
  67. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¡i®É¶¡¦¨´N¤@¤Á¡j®É¶¡¥i¥H³y´N¤H®æ¡A¥i¥H¦¨´N¨Æ·~¡A¤]¥i¥HÀx¿n¥\¼w¡C
ªð¦^¦Cªí ¤W¤@¥DÃD