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

[µo°Ý] ½Ö¯àÀ°³o´X¥G­«½Æ°Ê§@ªºVBA½G¨­ ÁÂÁÂ

¥ú¡e½Æ»s¡D¶K¤W¡f´N­n¯Ó¶O¤j¥b¤Ñ®É¶¡¡A¤×¨ä¤å¦r©Î¤½¦¡§ó¯Ó®É¡A
¨Ï¥Î°}¦Cª½±µ¹Bºâ¨ú¥Xµ²ªG¦A¶K¤J¡A¦]§PÂ_­È¥u¦³¢¯¤Î¢°¡A¶K¤J®ÉÁÙºâ§Ö¡A
Áö¬O³Ì°ò¥»ªº¡e°}¦C¡Darray¡f¹B¥Î¡A¦ý¹ïªì¾ÇªÌ¤]»á¦³Ãø«×¡A®¤µLªk¸Ñ»¡¡A°Ñ¦Ò§Y¥i¡G
test01.rar (139.58 KB)
¡@
­Y¸ê®Æ¤Ó¦h¡A¥i¯à³y¦¨°O¾ÐÅ餣¨¬°ÝÃD¡A¸Õ¸Õ¬Ý¡I
§Ú¥u´¡ªá¡A¦¹½×¾Â¦UªO¥D¬Ò¬O±M·~°ª¤â¡A¥i½Ð¨D¨ä¨ó§U¡I
¡@
Sub ¤ÀªR()
Dim Srr, Sht As Worksheet, Arr, Brr, Crr, X, Y, Z, R, TM
Dim i&, j&, k%, M, Mrr(1 To 2560, 1 To 2), S&, SU&

TM = Timer
R = [data!C65536].End(xlUp).Row
Arr = [Data!C1:D1].Resize(R)
X = [Data!I4]: If X < 2 Then X = 2
Y = [Data!J4]: If Y > R Then Y = R
Z = Y - X + 1: If Z <= 0 Then Exit Sub

ReDim Crr(X To Y, 1 To 256)
Application.ScreenUpdating = False
For i = 1 To 10
    Set Sht = Sheets("ªR" & i)
    Brr = Sht.Rows(1)
    For k = 1 To 256
        M = M + 1
        For j = X To Y
            If Brr(1, k) <= Arr(j, 1) And Brr(1, k) >= Arr(j, 2) Then S = 1
            Crr(j, k) = S: SU = SU + S: S = 0
        Next j
        Mrr(M, 1) = Brr(1, k):  Mrr(M, 2) = SU:   SU = 0
    Next k
    Sht.UsedRange.Offset(1, 0).ClearContents
    With Sht.[A2].Resize(Z, 256)
         Sht.Rows(2).Copy .Cells
         .Value = Crr
    End With
Next i

Sheets("µ²ªG").[A3:B3].Resize(M) = Mrr
MsgBox Timer - TM
End Sub

TOP

µ{¦¡¥u¨ú±o¦UªÑ»ù°Ñ¼Æªº²Å¦X¦¸¼Æ,¨Ã¿é¥X¦Ü¡eµ²ªG¡fªíªº¢Ï¢ÐÄæ¡A
¦Ü©ó¢Ñ¢ÒÄæ¦p¦ó­pºâ¡eµo¥Í²v¡f¡A¶·¦Û¦æ¥h®M¤½¦¡¡I

TOP

¬°¦ó§Ú¥u­n¶}±Ò±zªºÀÉ®× §Ú¥¼°µ¥ô¦ó°Ê§@«KÃö¤W ¥¦´N·|´£¥Ü¸ê®Æ¤w§ó§ï °Ý§Ú­n¤£­n¦sÀÉ???
OFFSET,INDIRECT,NOW,TODAY....µ¥µ¥¨ç¼Æ, ³£·|³y¦¨³o­Ó´£¥Ü!

SUMPRODUCT­pºâ¤W¸Uµ§¸ê®Æ, ­YPCµ¥¯Å¤£°ª, ¤j³¡¥÷¥ú¶}±ÒÀÉ®×´N­nµ¥«Ü¤[,
¤S, ­Y¬O¬°[±`¾n]¤½¦¡, ²Î­p¨Ó·½ªí¥ô¤@Àx¦s®æ¨C¤@¦¸ÅܰÊ, §Y·|¶]¥X¡e¦Û°Ê­«ºâ¡f(«UºÙ:¥dÀÉ), «D±`¤£¤è«K,

¨Ï¥ÎVBA¥i¥H§ïµ½¥H¤W±¡ªp, ¯ÊÂI¬O¡G¼Æ¾ÚÅܰʫá, ¥²¶·¦A°õ¦æµ{¦¡, µLªkÀH®ÉÅã¥Ü°ÊºAµ²ªG!

TOP

¥Î¤W¦¸VBA­×§ï¦p¤U¡]¥u¦C¥Xµ²ªGªí¢ÐÄæ¦¸¼Æ¡A¨ä¥L¤£³B²z¡^¡G
TEST02.rar (134.34 KB)

Sub ¤ÀªR()
Dim Arr, Brr, Cunt&, Crr%(), R&, X&, Y&, TM, j%, k&, SU%
TM = Timer
R = [data!C65536].End(xlUp).Row
Arr = [Data!C1:D1].Resize(R)

X = Val([Data!I6]): If X < 2 Then X = 2
Y = Val([Data!J6]): If Y > R Then Y = R
If Y <= X Then Exit Sub

Cunt = 2560
ReDim Crr(1 To Cunt, 0)
Brr = [µ²ªG!A3].Resize(Cunt)
For j = 1 To Cunt
¡@¡@For k = X To Y
¡@¡@¡@¡@'If Brr(j, 1) >= Arr(k, 2) And Brr(j, 1) <= Arr(k, 1) Then SU = SU + 1 '§PÂ_¨â¦¸,³t«×¸ûºC
¡@¡@¡@¡@If Brr(j, 1) >= Arr(k, 2) Then If Brr(j, 1) <= Arr(k, 1) Then SU = SU + 1 '²Ä¤@±ø¥ó¦¨¥ß¦A§PÂ_²Ä¤G±ø¥ó,¸û§Ö
¡@¡@Next k
¡@¡@Crr(j, 0) = SU: SU = 0
Next j
[µ²ªG!B3].Resize(Cunt).Value = Crr
Application.Goto [µ²ªG!B3]
MsgBox Timer - TM
End Sub

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2015-8-29 22:48 ½s¿è

Brr(j, 1) >= Arr(k, 2) °ò·Ç­È(¤ñ¸ûÂI) >= ¦C¤§³Ì§C»ù
Brr(j, 1) <= Arr(k, 1) °ò·Ç­È(¤ñ¸ûÂI) <= ¦C¤§³Ì°ª»ù
¡@
µ²ªGªíaÄæ¦]¦³¡e¯BÂI¼Æ¡f°ÝÃD¡A½Ð¨Ï¥Î=round(??,2)³B²z¡I
¡@
³Ì§C»ù¤p¤_¢¶ªº¥u¦³¥|µ§¡G²Ä¢·¢¯¢°¡ã¢·¢¯¢³¦C
2008/10/27        6.68        6.79        6.68
2008/10/28        6.29        6.48        6.23
2008/10/29        6.67        6.67        6.52
2008/10/30        6.50        7.11        6.50
­Y±q2008/11/21¡]²Ä¢·¢±¢¯¦C¡^©¹¤U²Î­p¡A«h°ò·Ç­È¢¶¥H¤UÀ³³£¬°¢¯¡A
­Y±q²Ä¢±¦C¦Ü¥þ³¡²Î­p¡AÁ`¼Æ¬°¡G89502

µ{¦¡½X¨Ã¤£Ãø¡A¦h¬Ý´X¦¸À³¥i¦Û¦æ­×§ï¡I
TEST03v2.rar (162.44 KB)
¡@

TOP

¦^´_ 55# lcctno


¡e°ò·Ç­È¡f¦³¤p¼ÆÂI¡A«Ü®e©ö³y¦¨¡e¯BÂI¼Æ¡f¡A¤w§iª¾¨Ï¥ÎROUND³B²z¡A
¨Ò¦p¡G¤½¦¡­pºâ«áªº¼Æ¾ÚÁöµMÅã¥Ü¡]¬Ý°_¨Ó¡^¬°¡G0.15¡A
¡@¡@¡@«ö¢Ô¢¸Àˬd¡A¹ê»Ú¬°0.149999999¡A
¡@¡@¡@¦³®É«ö¢Ô¢¸¡A¤´Åã¥Ü0.15¡A¦³¯BÂI¼Æ¦ý¦×²´¬Ý¤£¥X¨Ó¡A¡]µ²ªGªíA1917ªº8550.60¡A´N¬O³o¼Ë¡^¡A
¡@¡@¡@©¹©¹³y¦¨­pºâªº»~®t¡A³o¬OEXCELªº±J©R¡A
¡@¡@¡@©Ò¥H¡A¦³¤p¼Æªº¼Æ¾Ú¡A³Ì¦n¾i¦¨²ßºD¥[ROUND¥[¤u¤@¤U¡ã

¢Ï¢²¤½¦¡§ï¬°¡G
=IF(Data!K$4+Data!L$4*(ROW()-4) > Data!K$2, "", ROUND(Data!K$4+Data!L$4*(ROW()-3),2))¡@¤U¨ê¨ì©³

TOP

¦^´_ 57# lcctno

=ROUND(IF(Data!K$4+Data!L$4*(ROW()-4) > Data!K$2, "", Data!K$4+Data!L$4*(ROW()-3)),2)
³o¤½¦¡¨ì³Ì«á·|¦³¡e¿ù»~­È#Value¡f¡A¬O¦]¹JªÅ¦r²Å""¡A¤S±NROUND©ñ¦b³Ì¥~°é¡A¤U¤@¦¡´N¢Ý¢Ù¡A
=IF(Data!K$4+Data!L$4*(ROW()-4) > Data!K$2, "", ROUND(Data!K$4+Data!L$4*(ROW()-3),2))

excel¤½¦¡¤Îvba¥i¯à¥Îªº¡eºë·Ç«×¡f¤£¦P¡A©Ò¥H¦³®É¦P¤@¼Æ­È²£¥Í¤£¦Pµ²ªG¡A
¥HA1917¬°¨Ò¡A¤½¦¡¡G=IF(Data!K$4+Data!L$4*(ROW()-4) > Data!K$2, "", Data!K$4+Data!L$4*(ROW()-3))

F1917¤½¦¡¡G=A1917=8550.6¡@¡÷µ²ªG¡@TRUE

Sub test()
¡@MsgBox [µ²ªG!A1917] = 8550.6¡@¡@ '¡÷°õ¦æµ²ªG¡GFALSE
End Sub

³o¤£¬O§Úªº±M·~¡A®¤µLªk¦A²`¤J¸Ñ»¡¡ã

¡@

TOP

¥»©«³Ì«á¥Ñ ­ã´£³¡ªL ©ó 2015-8-30 19:50 ½s¿è

¦^´_ 60# ML089


¥þ°ì°}¦C½T¹ê¸û§Ö¬Ù¸ê·½!

MMULT¦bXP+OFFICE2000¤U, ³Ì¦h¥i¥Î¨ì5643¦C, ¦A¦h´N#VALUE,
¤£ª¾¨ä¥Lª©¥»¥i¥Î¨ì¦h¤Ö¦C?


¡Ä¡Äµn¿ý®É³£¤Ä¿ï¤F¡e¦Û°Êµn¿ý¡f¡A¨C¦¸¶i¨Ó½×¾ÂÁÙ­n¦A¿é¤J±b¸¹±K½X¡A¯u¤£¤è«K¡I
¡@

TOP

¦^´_ 62# ML089


«¢! ÁÙ¬O·sª©¦³®Æ~~
ÁÂÁ¡I

¤§«e³£¥Î©_¼¯ª¾ÃÑ+¡A²{¦bª©­±¤@§ï¤w­±¥Ø¬Ò«D¡A´XµLexcel±M¥Î®ÄªG¡I
excel-home«D±`±M·~¡A¦ý¥xÆW¤Ö¤H¥Î¡A¦³®É¦ê¦êªù¤l¡A
¥xÆW¤ñ¸û±M¤_excel½×¾Âªº¡A¦ü¥G¥u³Ñ³o¸Ì¡A¦Ó¦U¦ìªO¥D¥\¤O¤]´X¥iÀ°¦£¤j³¡¥÷°ÝÃD¡A©Ò¥H¤]¤Ö¤W¨Ó¡]¤W¨Ó¤]¬O¬Ý¬Ý¦Ó¤w¡^¡I

TOP

¦^´_ 64# lcctno


¥»¨Ó¬ï¿Ç¤l¡]¤½¦¡¡^¶ûºC¡A§ï¦¨¸È¤l¡]vba¡^¸û§Ö¨Ç¡A
²{¦b·Q¿Ç¤l¦A¬ï·f¸È¤l¡A°ÝÃD¤S¦^¨ì­ìÂI¡A
¤½¦¡½d³ò²Ä¤@®æ¯d¤½¦¡¡A¨ä¤U½Æ»s«á¦A¶K¦¨­È¡]¥H¢´¢´¼Ó½d¨ÒÀɬ°·Ç¡^¡G
Sub §ó·s¤½¦¡()
With [µ²ªG1!B4:B2562]
¡@¡@¡@[µ²ªG1!B3].Copy .Cells
¡@¡@¡@.Value = .Value
End With
End Sub

³o¼Ë¥u¦³²Ä¤@®æ¤½¦¡·|¼vÅT¹B§@¡ã¡ã

©Î¦p¤U¡G
Sub §ó·s¤½¦¡2()
With [µ²ªG1!B3:B2562]
¡@¡@.Formula = "=IF(A3="""","""",SUMPRODUCT((A3<=¸ê®Æ¦C_³Ì°ª»ù)*(A3>=¸ê®Æ¦C_³Ì§C»ù)))"
¡@¡@.Value = .Value
End With
End Sub

°õ¦æ¤¤¶·µ¥«Ý¨Ç®É¶¡¡]¦³¦p·í¾÷¡^¡A§¹¦¨«á§Y¤£·|¼vÅT¨ä¥¦¾Þ§@¡I
¡@

TOP

        ÀR«ä¦Û¦b : ­ì½Ì§O¤H´N¬Oµ½«Ý¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD