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

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

¥»©«³Ì«á¥Ñ 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

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-27 15:24 ½s¿è

¦^´_ 34# smart3135
  1. Option Explicit
  2. Private Sub Test()
  3.     Dim fs As Object, E As Range, C As Variant
  4.     Set fs = CreateObject("Scripting.FileSystemObject")
  5.     Set fs = fs.CreateTextFile("D:\°]³ø¸ê®Æ\1101\Test.TXT", True)
  6.     '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  7.     '¤å¦rÀɪº¼g¤J¬O
  8.     For Each E In Sheets(1).UsedRange.Columns
  9.         C = E.Value  '-> °}¦C(1 To ¦C¼Æ,1 To øó¼Æ)ªº¤Gºû°}¦C
  10.         C = Application.Transpose(E.Value) '¦]¬°²Ä¤Gºû¥u¦³¤@Äæ,Âà¸m¤@¦¸¥iÅܬ°¤@ºû°}¦C
  11.        '¦pE In UsedRange.rows
  12.        'C = E.Value  '-> °}¦C(1 To ¦C¼Æ,1 To øó¼Æ)ªº¤Gºû°}¦C
  13.        'C = Application.Transpose(Application.Transpose(E.Value)) '²Ä¤Gºû¤£¥u¤@Äæ,©Ò¥HÂà¸m¤G¦¸¤~¥iÅܬ°¤@ºû°}¦C
  14.         C = Join(C, vbTab)
  15.         'Join ¨ç¼Æ ¶Ç¦^¤@­Ó¦r¦ê¡A¸Ó¦r¦ê¬O³z¹L³sµ²¬Y­Ó°}¦C¤¤ªº¦h­Ó¤l¦r¦ê¦Ó«Ø¥ßªº¡C
  16.         'Join ¨ç¼Æ ¨Ï¥Îªº°}¦C¥²¶·¬O¤@ºû°}¦C
  17.         fs.WriteLine C
  18.     Next
  19.     fs.Close
  20. End Sub
½Æ»s¥N½X



¸Ô¬Ýµù¸Ñ¥i©úÁA.

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

TOP

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

¦^´_ 32# GBKEE
«z 1101¨ì5000¶]§¹¥u­n¤C¤ÀÄÁ ¦n«Â¡I
§Ú¤§«e¤]¦³¸Õ¹L±µ¤U¤Þ¸¹¸õ¤U¤@¦æ¡A¦ý¤@ª½¥¢±Ñ¡A­ì¨Ó­n¸õ¤U¤@¦æ«e±µªº¤U¤Þ¸¹«á­±­n¦³ªÅ®æ¡A¤S¾Ç¨ì¤@©Û¤F¡A¦A¦¸·PÁ±zªº«ü¾É¡I

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-26 20:22 ½s¿è

¦^´_ 31# smart3135
³o­ÓBATÀɧڤ@ª½³£¦³¦b¥Î¡A¬O§_¨C¦¸°õ¦æ§¹VBA´N­n²M¤@¦¸©O¡H,§A­n¶]³oµ{¦¡·íµM³Ì¦n¬Oªº,Àɮ׶}¶}ÃöÃö·|»s³y¤@¨Ç¼È¦sÀÉ,´N»Ý­n²M¤@¤U
WIN7 64¦ì¤¸+office 2007¡A°O¾ÐÅé¬O4G¡A¬O¤£»ÝÂX¥R¤F,¥t´N´N¶}¾÷®É¨t²Î­n¸ü¤Ó¤Jªº±`¾nÀ³¥Îµ{¦¡.¦û¾Ú¤Ó¦hªº°O¾ÐÅé.³o¤]¬O¥D¦]¤§£¸.
XP,32¦ì¤¸, 1GB, 2003ª©, 27#µ{¦¡ For 1101 To 5000ªº°j°é ,´îªÎ«á7¤ÀÄÁ¤º·d©w.
Eªº°Ï¶¡³]©w¶V¤p¡A§¹¦¨ªº®É¶¡´N¶Vµu¡A³o³¡¤À´N¤£¤Ó²z¸Ñ¬°¤°»ò·|³o¼Ë¤F,³o¬O·Q·íµMªº
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar
  4.     Ar = Array(56, 78, _
  5.          9, 10, 12 _
  6.        , 888, 999, _
  7.        56789)
  8. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 30# GBKEE
¥ý·PÁÂGBKEEª©¥D¤@¤@­@¤ßªº¦^µª¡A¦]¬°¤µ±ßÁÙ­n¤W¯Z¡A©Ò¥H±z¦b27#§ó·sªºµ{¦¡½X¡A¥i¯à­nµ¥¨ì©ú¤Ñ¤~¯àtry¤F¡I
¦Ü©ó¹q¸£´îªÎ³¡¤À
1±N¤U­±¤å¦r½Æ»s¨ì°O¨Æ¥»  ¦sÀɬ°ªþÀɦW ".BAT",¶Ç°e¨ì®à­±¤W ,¤£©w®Éªº²M²z©U§£Àɮסгo­ÓBATÀɧڤ@ª½³£¦³¦b¥Î¡A¬O§_¨C¦¸°õ¦æ§¹VBA´N­n²M¤@¦¸©O¡H
2¤£©w®Éªº²MªÅ¸ê·½¦^¦¬µ© ¡Ð³Ìªñ¥á¨ì¸ê·½¦^¦¬µ©ªº¸ê®Æ¸û¦h¡A¦³ªÅ·|¸Õ¤@¤U²MªÅ·|¤£·|¦n¤@ÂI
3 ¤£©w®É²MªÅIEªºÂsÄý°O¿ý¡Ð¥­±`³£¬O¥Îchorme¬yø°¾¹¬°¥D¡A¤£¹L³Ìªñ¦]¬°­nEXCEL¶×¤JWEB¸ê®Æ©Ò¥H¦³¤ñ¸û±`¥Î¡A·|²MªÅ¦A¨Ó¸Õ¸Õ
4 ©w®Éªº²M²zºÏºÐ¡Ð¨â¤Ñ«e¤~­è±NºÏºÐ­«²Õ
5ÂX¥R°O¾ÐÅé¡Ð§Úªº¨t²Î¬OWIN7 64¦ì¤¸+office 2007¡A°O¾ÐÅé¬O4G¡A¤£ª¾¹D³o¼Ë¦³»Ý­nÂX¥R¶Ü¡H

§Ú¦³µo²{·|¶]¨º»ò¤[¬O¦]¬°§Úµ¹ªº°Ï¶¡¶V¤j¡Aµ{¦¡¶]¨ì¶V«á­±´N¶VºC¡A¨Ò¦p§Úµ{¦¡½X³]©wFor E = 1101 to 9962¡A¥u°õ¦æ¤@¦¸¡A¶]°_¨Ó¥i¯à»Ý­n40¤ÀÄÁ
¦ý§Ú±Nµ{¦¡½X³]©wFor E = 1101 to 3000¡AFor E = 3001 to 5000¡AFor E = 5001 to 7000¡AFor E = 7001 to 9962¡A¦@°õ¦æ¥|¦¸¡A¦X­p°_¨Óªº®É¶¡´N¤£»Ý­n¨º»ò¤[
Eªº°Ï¶¡³]©w¶V¤p¡A§¹¦¨ªº®É¶¡´N¶Vµu¡A³o³¡¤À´N¤£¤Ó²z¸Ñ¬°¤°»ò·|³o¼Ë¤F¡I

¥t¥~ÁöµM±z¦b27#ªºµ{¦¡½X¤w§ó·s¡A¤£¹LÁÙ¬O§Æ±æ¯à¤F¸Ñ¤@¤U§Ú¦b28#¦V±z´£°ÝªºAR=Array(1202,1433,1502,1610.....................)³o¼Ë­n§â200­Ó¥N½X¥þ³¡¿é¤J
·|¸õ¨ì²Ä¤G¦æ¡AµM«á´N·|¥X¿ù¡A¤£ª¾¹D¦³¨S¦³¿ìªk¸Ñ¨M³o­Ó°ÝÃD©O¡H

¤£ª¾¹D³o­ÓARªºArray°Ï¶¡¦³¨S¦³¿ìªk¿é¤J200­Ó¤Þ¼Æ¥H¤W©O¡H

TOP

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

¦^´_ 29# smart3135
1233¤Ñ¤¯(¥ý§ì¨ú)¬O¥¿½Tªº¡A4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªº°ÝÃD
³o¤@¨Ç¿ù»~ªÑ²¼¦WºÙ(¥N¸¹) ¤Ñ¤¯(4203) ³sÄò¤@°_¿é¤J¦bSheets(2)ªºAÄæ,«áµ{¦¡¥i¸Ñ¨M.

28# ªº©Ò¦³°ÝÃD.27#µ{¦¡½X¤w§ó·s¤F,¥i¦A¬Ý¤@¦¸,´îªÎ¦³¸Õ¤@¤U¶Ü?

¸Õ¸Õ¬Ý
  1. Sub Ex()
  2.     Dim E As Integer
  3.     For E = 500 To 5000
  4.         Select Case E
  5.             Case 500 To 1000
  6.                 GoTo xNext
  7.             Case 1500 To 2000
  8.                 GoTo xNext
  9.             Case 2500 To 3000
  10.                 GoTo xNext
  11.         End Select
  12.         MsgBox E
  13. xNext:
  14.     Next
  15. End Sub
  16. Sub Ex1()
  17.     Dim E As Integer
  18.     For E = 500 To 5000
  19.         If E >= 500 And E <= 1000 Or E >= 1500 And E <= 2000 Or E >= 2500 And E <= 3000 Then
  20.                 GoTo xNext
  21.         End If
  22.         MsgBox E
  23. xNext:
  24.     Next
  25. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 27# GBKEE
ª©¥D¡A¤£¦n·N«ä¡A¦A½Ð±Ð¤@­Ó°ÝÃD¡A²{¦b§Ú­n³]©w°j°é¬°for E = 1101  9962¡A¦ý§Ú¤w¸gª¾¹D¬Y¨Ç¼Æ¦r°Ï¶¡¬O¤£»Ý­n¥hÂ^¨úªº¡A¦pªG·Q¸õ¹L¸Ó¨Ï¥Î«ç¼Ëªº»yªk©O¡H¥ýÁÂÁ±z¡I
¤j·§ªººc·Q¦p¤U:
  1. Dim E As Integer
  2.                          For E = 1101 To 2000
  3.                          IF E = 3800¨ì4100 then goto xlNext '·Q³]©w¬Y­Ó°Ï¶¡,½Ð±Ð»yªk¸Ó«ç»ò³]
  4.                          IF E = 6850¨ì8000 then goto xlNext '·Q³]©w¬Y­Ó°Ï¶¡,½Ð±Ð»yªk¸Ó«ç»ò³]
  5.                          IF E = 8550¨ì9000 then goto xlNext '·Q³]©w¬Y­Ó°Ï¶¡,½Ð±Ð»yªk¸Ó«ç»ò³]
  6.                          IF E = 9000¨ì9800 then goto xlNext '·Q³]©w¬Y­Ó°Ï¶¡,½Ð±Ð»yªk¸Ó«ç»ò³],¦@¥|­Ó°Ï¶¡

  7. xlNext:         
  8.                          next
  9. End sub
½Æ»s¥N½X

TOP

¦^´_ 27# GBKEE
GBKEEª©¥D±z¦n¡A¤µ¦­¤U¯Z«á´N¶}©l¦bTry±z¦b27#¦^ÂЪºµ{¦¡½X¡Aµ²ªGªº½T·|±N¤@¨Ç­«ÂЪº­ÓªÑtxt§R°£¡A¦ý¤£ª¾¦³¨S¦³¿ìªk±N¤@°_«Ø¥ßªº¸ê®Æ§¨¤]§R°£©O¡H
Á|¨Ò¨Ó»¡¡A1202©M2913¨â­Ó³£¬O¹AªL¡A©Ò¥Hµ{¦¡°õ¦æ§¹·|±N1202ªºtxt§R°£¡A¦ý1202ªº¸ê®Æ§¨¤´¬O¦s¦bªº¡A¤£ª¾¨S¦³¨S¿ìªk³s¸ê®Æ§¨¤@°_§R°£©O¡H
¥t¥~ÁÙ¦³¤@­Ó°ÝÃD¡A´N¬O³o­Óµ{¦¡½X«O¯dªº¸ê®Æ³£¬Osheet(2)ªº²Ä¤GÄæ­ÓªÑ¥N¸¹¸ê®Æ¡A­Y§Ú¨S¸ÑŪ¿ù»~ªº¸Ü¡Aµ{¦¡À³¸Ó¬O±N­ÓªÑ¥N½X¬Û¦P¡A¥ý§ì¨úªºtxt§R°£¡A«O¯d«á§ì¨úªºtxt
¦ý´N·|¹J¨ì1233¤Ñ¤¯(¥ý§ì¨ú)¬O¥¿½Tªº¡A4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªº°ÝÃD¡Aµ²ªG´N¬O¥¿½Tªº1233¤Ñ¤¯txt³Q§R°£¡A³o³¡¤À§Ú·QÀ³¸Ó¤£¤Ó¦n¸Ñ¨M
©Ò¥H¡A¦pªG¥i¥Hªº¸Ü¡A§ÚÁÙ¬O¶É¦V¦b±z24#¦^ÂЪºµ{¦¡½X¡A¥Î¤@­Ó¤@­Ó¬D¥Xªº¤è¦¡¡A³o¨Ç¤£»Ý­nªº¥N¸¹§Ú³£¦³¤F¡A¥u­n¿é¤JAR=Array()¤¤´N¥i¥H¤F¡A¥u¬O§Ú­n¿é¤Jªº¥N¸¹
¤j·§¦³200­Ó¥ª¥k¡A¦pªG¥þ³¡¿é¤J¡A¦pAR=Array(1202,1433,1502,1610.....................)³o¼Ë­n§â200­Ó¥N½X¥þ³¡¿é¤J·|¸õ¨ì²Ä¤G¦æ¡AµM«á´N·|¥X¿ù¡A¤£ª¾¹D¦³¨S¦³¿ìªk
¸Ñ¨M³o­Ó°ÝÃD©O¡H¥ý·PÁ±zªº«ü¾É¡I

TOP

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

¦^´_ 26# smart3135
¤j¬ù­n¯Ó®É40¤ÀÄÁ¥H¤W,¬O¦³ÂI¤[,¹q¸£­n´îªÎ¤F
«Øij´îªÎ¤è¦¡¦p¤U
1±N¤U­±¤å¦r½Æ»s¨ì°O¨Æ¥»  ¦sÀɬ°ªþÀɦW ".BAT",¶Ç°e¨ì®à­±¤W ,¤£©w®Éªº²M²z©U§£ÀÉ®×
2¤£©w®Éªº²MªÅ¸ê·½¦^¦¬µ©
3 ¤£©w®É²MªÅIEªºÂsÄý°O¿ý
4 ©w®Éªº²M²zºÏºÐ
5ÂX¥R°O¾ÐÅé

4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªºªÑ²¼¸¹½X,³o¨ÇªÑ²¼¦WºÙ(¥N¸¹) ³sÄò¤@°_¿é¤J¦bSheets(2)ªºAÄæ
  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(4203) '¿é¤J 4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªºªÑ²¼¸¹½X
  8.     URL = "URL;https://djinfo.cathaysec.com.tw/Z/ZC/ZCH/ZCH.DJHTM?A="
  9.     xPath = "D:\°]³ø¸ê®Æ"
  10.     With ThisWorkbook
  11.         .Sheets(2).UsedRange.Offset(, 1).Clear
  12.         '4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~ªºªÑ²¼¸¹½X ³o¨Ç ªÑ²¼¦WºÙ(¥N¸¹) ³sÄò¤@°_¿é¤J¦bSheets(2)ªºAÄæ
  13.         Set Rng = .Sheets(2).Range("A:A").SpecialCells(xlCellTypeConstants)
  14.         If Rng Is Nothing Then
  15.             AR = Array()
  16.         ElseIf Rng.Count = 1 Then
  17.             AR = Array(Rng.Value)
  18.         Else
  19.             AR = Application.Transpose(Application.Transpose(Rng))
  20.         End If        '***************************************************
  21.         Application.ScreenUpdating = False
  22.         Application.StatusBar = " "
  23.         With .Sheets(1)      '¬¡­¶Ã¯ªº²Ä 1 ±i¤u§@ªí
  24.             If .QueryTables.Count = 0 Then
  25.                 With .QueryTables.Add(Connection:=URL, Destination:=.Range("$A$1"))
  26.                     .Refresh BackgroundQuery:=False
  27.                 End With
  28.             End If
  29.                 .Rows(1).Delete
  30.                 .Columns(1).Delete
  31.             For E = 1101 To 5000
  32.                 With .QueryTables(1)
  33.                     .Connection = URL & E
  34.                     .PreserveFormatting = True
  35.                     .BackgroundQuery = True
  36.                     .RefreshStyle = xlInsertDeleteCells
  37.                     .SaveData = True
  38.                     .AdjustColumnWidth = True
  39.                     .RefreshPeriod = 0
  40.                     .WebSelectionType = xlSpecifiedTables
  41.                     .WebFormatting = xlWebFormattingNone
  42.                     .WebTables = "3"
  43.                     .WebPreFormattedTextToColumns = True
  44.                     .WebConsecutiveDelimitersAsOne = True
  45.                     .Refresh BackgroundQuery:=False
  46.                     If .ResultRange(1) < 0 Or InStr(.ResultRange(2, 1), "¬dµL") Then GoTo xLnext
  47.                     '¶×¤J¸ê®Æªº A1 < 0  OR  ¶×¤J¸ê®Æªº A2 "¬dµL"
  48.                     S1 = .ResultRange(1)
  49.                     S2 = Mid(S1, 1, InStr(S1, "(") - 1) 'ªÑ²¼¦WºÙ
  50.                 End With
  51.                 With ThisWorkbook.Sheets(2).Range("B:B")
  52.                     Set Rng = .Find(S2, lookat:=xlPart) '·j´M:ªÑ²¼¦WºÙ
  53.                     If Rng Is Nothing Then
  54.                         i = i + 1
  55.                         .Range("A" & i) = S1  'ªÑ²¼¦WºÙ¥N½X
  56.                     Else
  57.                         Rng.Cells(1, 2) = S1   '­«½ÆªºªÑ²¼
  58.                         If UBound(Filter(AR, E)) > -1 And UBound(AR) > -1 Then
  59.                         'Filter(AR, E) > -1   '¤ñ¹ï¨ì¦p4203¤Ñ¤¯(«á§ì¨ú)¬O¿ù»~
  60.                             Rng.Cells(1, 2) = Rng.Cells(1, 2) & "***" '«á§ì¨ú¬O¿ù»~
  61.                             GoTo xLnext:
  62.                         End If
  63.                         S2 = Mid(Trim(Rng), InStr(Trim(Rng), "(") + 1)
  64.                         S2 = Mid(S2, 1, Len(S2) - 1)    'ªºªÑ²¼[¥N½X]
  65.                         xFile = xPath & "\" & S2 & "\*.*" '±þ±¼©Ò¦³ÀÉ®×
  66.                         If Dir(xFile) <> "" Then
  67.                             ii = ii - 1
  68.                             Kill xFile
  69.                             xFile = xPath & "\" & S2
  70.                             If Dir(xFile, vbDirectory) <> "" Then RmDir xFile '¸ê®Æ§¨¤]§R°£¤F
  71.                         End If
  72.                     End If
  73.                 End With
  74.                 ii = ii + 1
  75.                 xFile = xPath & "\" & E & "\REVENUE.txt"
  76.                 MkDir_Sub xFile
  77.                 Maketxt xFile, .QueryTables(1)
  78. xLnext:
  79.                 S1 = " " & Sheets(1).QueryTables(1).ResultRange(1)
  80.                 If Val(S1) < 0 Then S1 = " ¬dµL"
  81.                 Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & "  " & E & S1
  82.             Next
  83.         End With
  84.     End With
  85.     Application.ScreenUpdating = True
  86.     Application.StatusBar = Application.Text(Time - t, ["MM¤ÀSS¬í"]) & " Ok "
  87.     MsgBox "¶×¤J ¤å¦rÀÉ" & ii & " ¶O®É " & Application.Text(Time - t, ["MM¤ÀSS¬í"])
  88. End Sub
  89. Private Sub Maketxt(xF As String, Q As QueryTable)   '±N¶×¤J¸ê®Æ¦s¤J«ü©wªºtxt
  90.     Dim fs As Object, E As Range, C As Variant
  91.     Set fs = CreateObject("Scripting.FileSystemObject")
  92.     Set fs = fs.CreateTextFile(xF, True)  '³Ð¨£¤@­ÓÀÉ®×,¦pÀɮצs¦b¥iÂл\±¼
  93.     For Each E In Q.ResultRange.Rows
  94.         C = Application.Transpose(Application.Transpose(E.Value))
  95.         C = Join(C, vbTab)
  96.         fs.WriteLine C
  97.     Next
  98.     fs.Close
  99. End Sub
½Æ»s¥N½X

EX.JPG (136.56 KB)

EX.JPG

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

TOP

        ÀR«ä¦Û¦b : ±o²z­nÄǤH¡A²zª½­n®ð©M¡C
ªð¦^¦Cªí ¤W¤@¥DÃD