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

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

¦^´_ 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

ÁÂÁÂg¤j¡ã¡ã

TOP

·Q¦A½Ð±Ð¤@¤U¡A
­Y¬Oa20 ªºÀx¦s®æ¬°¤¤¤å¦r"¦pªG"¡A
°²³]§Ú­n§PÂ_a1~a50 ªºÀx¦s®æ¬O§_¦³¦¹¤@¤¤¤å¦r"¦pªG"¡A
·í±ø¥óµo¥Í®É¡A«h§Úªº¬Y­Ó¼Æ­È¬°B20¡A§_«h¬°c20ªºÀx¦s®æ¸Ìªº¼Æ­È¡C
½Ð°Ý­n¦p¦ó§PÂ_¡H

ÁÂÁ¡ã

TOP

§AªºB20 , C20³£¬O©T©w¦ì¸m¶Ü?
­Y¬O
x = IIf(InStr(Join(Application.Transpose([A1:A50].Value), ""), "¦pªG") > 0, [B20], [C20])
­Y¤£¬O©T©w¦ì¸m¦Ó¬O¬Û¹ï©ó "¦pªG" Àx¦s®æ
°ÝÃD¤S©Ç©Çªº¡A¨S§ä¨ì "¦pªG" Àx¦s®æ¡A­þ¨ÓªºC20

TOP

ÁÂÁÂstillfish00¤jªº¦^ÂСA

±z»¡ªº¨S¿ù¡A§Ú¼gªº¤£°÷²M·¡¡C
·Q¦A½Ð±Ð¤@¤U¡A
­Y¬O¦bA1 ~ A50¸Ì¡AA20 ªºÀx¦s®æ¬°"¦pªG"¡A«hc55ªº­È¬°B20¡A
¦ý­Y¬OA21 ªºÀx¦s®æ¤~¬°"¦pªG"¡A«hC55ªº­È¬°B21
¤]´N¬O»¡"¦pªG"¤£½T©w¬O¦s©ñ¦bA1 ~A50ªº­þ­Ó¦a¤è¡A
¦ÓC55ªº­È¤]¸òµÛÅÜ°Ê¡A¤£¾å±o³o¼Ë­n¦p¦ó­×§ï?

Ä~Äò«ä¦Ò¤¤~

ÁÂÁÂ!

TOP

¦^´_ 15# cji3cj6xu6
  1. Sub TEST()
  2.     Dim f
  3.     With ActiveSheet
  4.         Set f = .[A1:A50].Find(What:="¦pªG", LookIn:=xlValues, LookAt:=xlPart)
  5.         .[C55] = IIf(f Is Nothing, "§ä¤£¨ì", f.Offset(, 1).Value)
  6.     End With
  7. End Sub
½Æ»s¥N½X

TOP

¦^´_ 15# cji3cj6xu6
§ó¥¿¤@¤U(¦]¬°IIF¥¿¤Ï³£·|¥ý¹Bºâ·|¦³°ÝÃD)
  1. Sub TEST()
  2.     Dim f
  3.     With ActiveSheet
  4.         Set f = .[A1:A50].Find(What:="¦pªG", LookIn:=xlValues, LookAt:=xlPart)
  5.         If f Is Nothing Then
  6.             .[C55] = "§ä¤£¨ì"
  7.         Else
  8.             .[C55] = f.Offset(, 1).Value
  9.         End If
  10.     End With
  11. End Sub
½Æ»s¥N½X

TOP

ÁÂÁÂstillfish00¤jªº¦^ÂСA

³o¦¸¤S¥i¥H¦h¾Ç­Ó«ü¥O¤F¡C
¹ï©óvba¤£¼ô¡A¥u¯à¥Î¨Ç²³æªº«ü¥O¡A¬Ý¨Ó­n¦h¾Ç¤@ÂI¤F¡C
³q±`§Ú¥u·|µw¨è¤@®M¥i¥Îªºvba¡A
¤ñ¦p¡A³o¦¸­n¬O¨S¦³¤H¦^ÂСA§Ú´N·|¥Î¿ý»s·s¥¨¶°ªº¤è¦¡¡A
¿ý¤U¨ú¥N"¦pªG"ªº¤èªk¡AµM«á¥H¼Æ¦r¤ñ¹ïªº¤è¦¡¨Ó³]©wC55¡C

ÁÂÁÂstillfish00¡ã

TOP

¹ï­ì§@ªÌ ¦Ü¤W³Ì°ªªº·P¼g
§Ú¤Þ¥Î­ì¥»ªºcode¤p°µ­×§ï¦p¤U

Sub Ex()
    Dim i As Integer, s As Integer, k As Integer, A, ii, j
    Dim co_id As String, isnew As String, season As String
    Dim input_year As String
    co_id = InputBox("½Ð¿é¤J ¤½¥q¥N¸¹")
    If Not IsNumeric(Val(co_id)) Or Len(co_id) <> 4 Then Exit Sub              '¤£¬O¥|¦ì¼Æªº¼Æ¦r
      isnew = "2"
  
    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .Navigate "http://mops.twse.com.tw/mops/web/query6_1"
        Do While .Busy Or .ReadyState <> 4: DoEvents: Loop
        With .document
            For Each A In .getelementsbytagname("INPUT")
                If A.Name = "co_id" Then A.Value = co_id
            Next
            For Each A In .getelementsbytagname("SELECT")
                If A.Name = "isnew" Then
                    A.Value = True
                    If isnew = "2" Then
                        A.Focus
                        Application.Wait Now + #12:00:02 AM#
                        Application.SendKeys "{DOWN}"
                        Application.Wait Now + #12:00:02 AM#
                        Application.SendKeys "{ENTER}"
                    End If
                End If
              If A.Name = "year" And isnew = "2" Then A.Value = "101"
              If A.Name = "month" And isnew = "2" Then A.Value = "05"
  
            Next
            For Each A In .getelementsbytagname("INPUT")
                If Trim(A.Value) = "·j´M" And A.Name <> "rulesubmit" Then A.Click        '«ö¤U[·j¯Á]Áä
            Next
        End With
        Application.Wait Now + #12:00:10 AM#                     'µ¥«Ýºô­¶¤U¸ü¸ê®Æ
        Set A = .document.getelementsbytagname("table")
        On Error Resume Next       '***¦³¨Çtable¨SRows¸ê®Æ·|²£¥Í¿ù»~ ¤£²z·|¥¦,µ{¦¡Ä~Äò¨«
        With ActiveSheet
            .Cells.Clear
           '************************
           ' For ii = 0 To A.Length - 1        '¤£ª¾¹Dtable½d³ò¦b¦ó³B: ±q0¶}©l
           '******************************
            For ii = 11 To A.Length - 1        ''±q11¶}©l ¥Î Debug.Print ii  §ä¥X©Ò­n¸ê®Æªºtable½d³ò
                For i = 0 To A(ii).Rows.Length - 1      '¼g¤J¸ê®Æ
                'Debug.Print ii  ¥i§ä¥X©Ò­n¸ê®Æªº table ½d³ò
                k = k + 1
                For j = 0 To 5
                    Cells(k, j + 1) = A(ii).Rows(i).Cells(j).innerText
                Next
            Next
            Next
            .Range("C5").Cut Range("D5")
            With .Range("B5:C5,D5:E5")
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
                .Merge
            End With
        End With
        '.Quit        'Ãö³¬ºô­¶
    End With
End Sub



§Ú¹J¨ì¤FIE cookieªº°ÝÃD,"¦~¥÷" ¨Ã¤£·|¸òµÛµ{¦¡½X¤¤©w¸qªº"101" ¦ÓÅܧó¨ì101
¥u¦³¬ö¿ý¤â°Ê®t¸ß¹Lªº¦~¥÷­È¦Ó§@°Ê,¨Ò¦p
C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\Cookie:[email protected]/
¤º®e¦p¤U
"D102%"
¦pªG§Ú§ï¦¨D101% ,¦b¬d¸ß®É´N¥i¥HÅܦ¨101¦~,½Ð°ÝVBA¦³¨S¦³¸Ñ¨M¤è¦¡
§Ú´¿¸g¬O¹L¥ÎVBA ¿é¥XÀɮרì³o¸ê®Æ§¨¦n¹³¨S¦³¿ìªk
³o­Ó¬O§Ú´ú¸Õªºµ{¦¡½X:
Sub XlsToTxT()
Dim MYstr As String, i As Integer                '©w¸qÄÝ©Ê
Open "C:\Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\63MX5O7N.txt" For Output As #1     '©w¸qOutput File¦ì¸m
Open "C:\63MX5O7N.txt" For Output As #1     '©w¸qOutput File¦ì¸m
    For i = 1 To 10                                    '¥Ñ Row 1to10
        MYstr = Cells(i, 1)                            '¿é¥Xªº¤º®e (©Î§A­nªºªF¦è,¥i¦b¦¹¶}©l¦Û¤v©w¸q§a~)
        Print #1, MYstr
    Next i
Close #1
End Sub

newmops2
co_id%3D5489%7Cyear%3D102%7Cmonth%3D05%7C
mops.twse.com.tw/
1088
3112764800
30318700
2461393296
30318499
*

¸g¹L¿é¥X°Ê§@«á¨Ã¤£·|¦^¦s¬°cookieÀÉ®×
·|¯uªº¦s¦¨¤@­ÓTXTÀÉ

TOP

¦^´_ 6# lalalada
§Ú¤]¸Õ¤F¤@¤U¡Aµoı¥Î¹³±z¦P¼Ëªº¤èªk¥ý§ä¥X°Ñ¼Æ¦AQueryTables¨ìXlsªº¤u§@ªí¤W¡A¤ñ¸û¾A¦X§Ú¥Ø«eªº·Qªk¡A§Ú²ßºD¥HAutoIT¦Û°Ê¶}±ÒEXCEL¨Ã¥t¦sCSV¡C
«Ü©êºp¡A§Ú¬O¤p¾Ç¥Í¡A¤£¯à¤U¸üÀɮסA¬O­Ó¤p§¾«Ä¡I

TOP

        ÀR«ä¦Û¦b : ¹D¼w¬O´£ª@¦Û§Úªº©ú¿O¡A¤£¸Ó¬O¨þ¥¸§O¤HªºÃ@¤l¡C
ªð¦^¦Cªí ¤W¤@¥DÃD