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

excel vba ¬d§ä

excel vba ¬d§ä

(¤u§@ªí1)                                                                     (¤u§@ªí2)                           
          2001 2002 2003 2004 2005                                             
A           2      4        1        0       12                                     D  2002      8
B           3       5       0        0         7                                      F  2003      9
C           7      0       4        2          5                                     G  2001
D           0      8      9         7         2
E           7     10     11      5         8
F          6       8        9      10       0
½Ð°Ý§Ú±q¤u§@ªí1ªºÁ`Àɤ¤¡A¬d§ä¤u§@ªí2ªº¥N¸¹¤Î¬Û¦P¦~¤À¡A¦pªG³£²Å¦Xªº¸Ü¡A«h§â¤u§@ªí1¤¤²Å¦Xªº­È¡A¶K¨ì¤u§@ªí2¤¤¬Û¹ïÀ³ªºÀx¦s®æ¤¤
¦ý¬O¥Ø«e§Úªºµ{¦¡¶]¤£°Ê¡A¦]¦¹§Æ±æ¦U¦ì°ª¤â¥i¥HÀ°¦£¬Ý¬Ý

Sub ro()
Dim ii, kk As Integer
Dim jj As Long
Dim AA, TT As Object
  Set AA = Worksheets("¤u§@ªí1")
  Set TT = .Worksheets("¤u§@ªí2")
   For jj = 3 To 22355
     For ii = 2 To 1068
       For kk = 3 To 40
           Set cusip = AA.Cells(jj, 2).Find(What:=TT.Cells(ii, 6), LookIn:=xlFormulas)   '±q¤u§@ªí1¬d¸ß©M¼Ë¥»¬Û¦Pcusip'
           If Not cusip Is Nothing Then
                Set tdate = AA.Cells(1, kk).Find(What:=TT.Cells(ii, 2), LookIn:=xlFormulas)     '´M§ä¬Û¦P¦~¤À'
                If Not tdate Is Nothing Then
                AA.Cells(jj, kk).Copy Destination:=TT.Cells(ii, 7)
                End If
           Else
           End If
       Next kk
     Next ii
   Next jj
End Sub

¥»©«³Ì«á¥Ñ lpk187 ©ó 2016-10-17 11:01 ½s¿è

¦^´_ 1# markbaseball
µ½¥Î°Ï°ìÅܼƵøµ¡¥H¤ÎF8(³v¨B°õ¦æ)¨ÓÆ[¬Ý§Aªº¥N½X¡A´N®e©ö§ì¨ì°ÝÃD©Ò¦b¤F
  1. Sub ro()
  2.     Dim ro As Integer
  3.     Dim AA As Worksheet
  4.     Dim rng As Range, r As Range, c As Range
  5.     Set AA = Worksheets("¤u§@ªí1")
  6.     With Sheets("¤u§@ªí2") '¥H¤u§@ªí2°µ¥Ø¼Ð°Ï°ì
  7.         ro = .[A65535].End(xlUp).Row '´M§äAÄ檺³Ì«á¤@®æªº¦C¸¹
  8.         For Each rng In .Range("a1:a" & ro) '¥HA1:A(roªº¼Æ­È)¬°½d³ò°µ´`Àô
  9.             Set r = AA.Columns(1).Find(rng, LookIn:=xlFormulas) '¦b¤u§@ªí1ªºAÄæ(Columns(1))¡A´M§ä¥N¸¹
  10.             Set c = AA.Rows(1).Find(rng.Offset(, 1), LookIn:=xlFormulas) '¦b¤u§@ªí1ªº²Ä¤@¦C(Rows(1))¡A´M§ä¦~¥÷
  11.             If Not r Is Nothing And Not c Is Nothing Then '¥N¸¹©M¦~¥÷³£§ä¨ì¤~°õ¦æ
  12.                 rng.Offset(, 2) = AA.Cells(r.Row, c.Column) '§â§ä¨ìªº®y¼Ð¤Wªº­È¶K¨ì rng(AÄæ) «áªº²Ä¤GÄæ(CÄæ)
  13.             End If
  14.             Set r =Nothing
  15.             Set c=Nothing
  16.         Next
  17.     End With
  18. End Sub
½Æ»s¥N½X

TOP

¦^´_ 2# lpk187


    ½Ð°Ý¤@¤U¡A§Ú¤u§@ªí1ªº¦~¥÷¨ä¹ê¬O´`Àôªº¡A¦]¬°¤£¥u¤@ºØ¸ê®Æ»Ý­n¬d§ä¡C
    ¨Ò¦p»¡:  2010 2012 2013 2014 2015 2010 2012 2013 2014 2015 ¤@ª½´`Àô¤U¥h¡C³o¼Ëªº¸Ü¡A¬d¸ßrow¸Ó«ç»ò­×§ï©O?

TOP

¥»©«³Ì«á¥Ñ lpk187 ©ó 2016-10-18 10:55 ½s¿è

¦^´_ 3# markbaseball

¤£¦n·N«ä¡I§Ú¤£À´§Aªº¦~¥÷´`Àô¬O¤°»ò·N«ä¡A©µÄò¶Ü¡H
§Ú¥ý°²³]¬O©µÄò¦n¤F¡A¤W­zµ{§ÇªºSet c = AA.Rows(1).Find(rng.Offset(, 1), LookIn:=xlFormulas)
´N¬O¬d§ä¦~¥÷¡A¥u­n¬O§Aªº¦~¥÷³£©ñ¦b²Ä¤@¦C(¾ã¦C)¡A³£¥i¥H§ä¨ì¡C¦pªG¦~¥÷©ñ¦b²Ä¤G¦C¡A«h AA.Rows(1)§ï¦¨ AA.Rows(2)¡A¨Ì¦¹Ãþ±À
§Aªº°ÝÃD¤¤¦³2­Ó±ø¥ó¡A¤@­Ó¬O§ä¦~¥÷¡A¤@­Ó¬O§ä¥N¸¹¡A¦~¥÷¬O§ä²Ä¤@¦C(¾ã¦C)¡A¥N¸¹«h¬O§äAÄæ(¾ãÄæ)

­Y¤´¦³°ÝÃD¡A«Øij¤W¶ÇÀÉ®×

TOP

¦^´_ 4# lpk187

sheet1ªøªº¬O¹³³o¼Ë

TOP

¥»©«³Ì«á¥Ñ lpk187 ©ó 2016-10-18 11:44 ½s¿è

¦^´_ 5# markbaseball


    §c¡I¨º¤u§@ªí2©O¡H¤£¯à¤W¶ÇÀɮ׶ܡH¬°¤F¦^µª§Aªº°ÝÃD¡A¦^µªªº¤HÁÙ±o§@¤@­Ó©M§A¤@¼Ëªº¬¡­¶Ã¯¡H
³o¼Ë¤£¤@©w¯à²Å¦X§Aªº»Ý¨Dªº¡I
ÁÙ¦³¤@¦¸»¡²M·¡§Aªº»Ý¨D¬O¤°»ò¡A§Aªº¹Ï¤ù©M¤@¼Óªº°ÝÃD¦³ÂI¤£¤@¼Ë¤F¡I

TOP

¦^´_ 6# lpk187

¦]¬°µLªkª½±µ¶KÀɮ׳sµ²¡A¬G©ñ¦btxtÀÉ¡A¥HÀ£ÁYÀɤW¶Ç³sµ²
Àɮ׳sµ².rar (148 Bytes)

TOP

¦^´_ 7# markbaseball
  1. Sub ro()
  2.     Dim ro As Range, co As Range
  3.     Dim AA As Worksheet, bb As Worksheet
  4.     Dim rng As Range, r As Range, shco As Range
  5.     Dim crng As Range, ng As Range
  6.     Set AA = Worksheets("¤u§@ªí1")
  7.     Set bb = Worksheets("¤u§@ªí2")
  8.     Set ro = bb.[D65535].End(xlUp)
  9.     Set co = bb.[E1].End(xlToRight)
  10.     Set shco = AA.[c1].End(xlToRight)
  11.     For Each rng In bb.Range("D2", ro.Address)
  12.         If rng <> "" Then
  13.         Set r = AA.Columns(2).Find(rng, LookIn:=xlFormulas)
  14.         For Each crng In bb.Range("e1", co)
  15.             For Each ng In AA.Range("c1", shco.Address)
  16.                 If ng.Value & ng.Offset(1).Value Like rng.Offset(, -2) & crng.Value & "*" Then
  17.                     If Not r Is Nothing And Not ng Is Nothing Then
  18.                         bb.Cells(rng.row, crng.column) = AA.Cells(r.row, ng.column)
  19.                     End If
  20.                     Exit For
  21.                 End If
  22.             Next
  23.         Next
  24.         Set r = Nothing
  25.         End If
  26.     Next
  27. End Sub
½Æ»s¥N½X

TOP

¦^´_ 8# lpk187


    ¤Ó¼F®`¤F!!¤£¹L¥i¥H½Ð¤j¤jµy·L¸Ñ»¡¤@¤U¶Ü?
             For Each crng In bb.Range("e1", co)
             For Each ng In AA.Range("c1", shco.Address)
            ³o¸Ì¬Ý¤£¾A»áÀ´­C!

TOP

¦^´_ 9# markbaseball

¤W­zµ{§Ç¥N½X³£¬O«Ü°ò¦ªº»y¥y¡A­Y§A¦³µ½¥Î°Ï°ìÅܼƵøµ¡¥H¤ÎF8(³v¨B°õ¦æ)¨ÓÆ[¬Ý¨ä¥N½Xªº¸Ü¡C¨ä¹ê¤£¥Î¸ÑÄÀ¡A
´N¥i¥H«Ü®e©öªºÆ[¹î¨äµ{§Çªº¤º®e¥H¤Î·N«ä¡A·|¤ñ§Ú¸ÑÄÀ¡A§ó®e©ö²z¸Ñ¡I¡I

¥H¤U¥N½X¬°¤F¸ÑÄÀ¡A­×§ï¤FÅܼƦWºÙ(®e©öÆ[¬Ý)¡A¨ä¤º®e¤]¦³°µµy·Lªº­×¥¿¡C
  1. Sub ro()
  2.     Dim sht2EndRow As Range, sht2EndColumn As Range
  3.     Dim sht_1 As Worksheet, sht_2 As Worksheet
  4.     Dim rng As Range, findCusIP As Range, sht1EndColumn As Range
  5.     Dim crng As Range, ng As Range
  6.     Set sht_1 = Worksheets("¤u§@ªí1")
  7.     Set sht_2 = Worksheets("¤u§@ªí2")
  8.     Set sht2EndRow = sht_2.[D65535].End(xlUp) '§ä ¤u§@ªí2 ªº DÄæ ³Ì«á¤@Àx¦s®æ¡A¨ä»y¥yªº·N«ä¬°¡G±qÀx¦s®æªºD65535©¹¤W§ä¡A§ä¨ì¦³­ÈªºÀx¦s®æ¡A³o¸Ì¤@©w­n©¹¤W§ä¡A¦]¬°DÄ欰¤£³sÄòªº½d³ò(¦³ªÅªºÀx¦s®æ)¡A
  9.     Set sht2EndColumn = sht_2.[E1].End(xlToRight) '§ä ¤u§@ªí2 ªº ²Ä¤@¦C ªº³Ì«á¤@Àx¦s®æ¡A¨ä»y¥yªº·N«ä¬°¡G±q E1 ©¹¥k§ä¨ì³Ì«á¦³­ÈªºÀx¦s®æ
  10.     Set sht1EndColumn = sht_1.[c1].End(xlToRight) '§ä ¤u§@ªí1 ªº ²Ä¤@¦C ªº³Ì«á¤@Àx¦s®æ
  11.    
  12.     For Each rng In sht_2.Range("D2", sht2EndRow) '¥H¤u§@ªí2ªº D2 ¨ì DÄæ ³Ì«á¤@Àx¦s®æªº½d³ò°µ°j°é´`Àô¡A³o¸Ì«ü¦Vªº½d³ò¬O D2:D1068
  13.         If rng <> "" Then '¦pªG ¥Ø¼ÐÀx¦s®æ rng ¤£¬°ªÅ­È¤~°õ¦æ¤º³¡»y¥y
  14.             Set findCusIP = sht_1.Columns(2).find(rng, LookIn:=xlFormulas) '¥ý§ä¨ì CusIP ¦bBÄ檺­þ¤@ ¦C ªºÀx¦s®æ
  15.             If Not findCusIP Is Nothing Then '¦pªG¦³§ä¨ì CusIP¤~°õ¦æ¤U¦C»y¥y
  16.                 For Each crng In sht_2.Range("e1", sht2EndColumn) '¥H¤u§@ªí2 ªº ²Ä¤@¦C ±q E1 ¨ì ²Ä¤@¦C ªº³Ì«á¤@Àx¦s®æªº½d³ò°µ°j°é´`Àô¡A³o¸Ì«ü¦Vªº½d³ò¬O E1:I1
  17.                     ''''''¤U­±°j°é¶}©l´M§ä
  18.                     For Each ng In sht_1.Range("c1", sht1EndColumn) '¥H¤u§@ªí1 ªº C1:KT1 °µ½d³ò ¤ñ¹ï¦~¥÷¥H¤Î¨ä¤U¤@®æªºÀx¦s®æ¤º®e¡A¤ñ¦p¡G1978Return on Equity[Y78]
  19.                         ''''''¤U¦Cªº ng.Value & ng.Offset(1).Value(¤u§@ªí1ªº ¦~¥÷©M¦WºÙ) ©M rng.Offset(, -2) & crng.Value & "*"(¤u§@ªí2ªº¦~¥÷©M¦WºÙ) °µ¤ñ¹ï
  20.                         ''''''³o¸Ìªº "*" ¬O§â¤u§@ªí1ªº²Ä¤G¦C¦WºÙ¤¤ªº¤¤¬A¸¹¥H¤Î¨ä¤º®e¥h°£±¼(»¡¬O¥h°£±¼¡A¦ýÀ³¸Ó»¡¥i¥H¬O¥ô¦óªº¤º®e)
  21.                         If ng.Value & ng.Offset(1).Value Like rng.Offset(, -2) & crng.Value & "*" Then
  22.                             sht_2.Cells(rng.row, crng.column) = sht_1.Cells(findCusIP.row, ng.column) '¤ñ¹ï¦¨¥\«á¼g¤JÀx¦s®æ¡A¤ñ¦p»¡ E2¡BF2¡BG2¡BH2¡BI2 ¨Ì¦¹Ãþ±À
  23.                             Exit For
  24.                         End If
  25.                     Next
  26.                     '''''''''''''
  27.                 Next
  28.             End If
  29.             Set findCusIP = Nothing '·í¦¸ªº°j°éµ²§ô«á¡A³]©w¬°¨S¦³ª«¥ó¡A¥H§Q¤U­Ó°j°é·j´M¡A¨S³]ªº¸Ü¡A«h¦³¥i¯à§ä¨ì¿ù»~ªº¸ê®Æ
  30.         End If
  31.     Next
  32. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : ªY½à§O¤H´N¬O²øÄY¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD