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

[µo°Ý] ½Ð°Ý ARRAY½d³ò §ï¦¨ °ÊºA «ü©w ½d³ò°ÝÃD ½Ð«e½ú­Ì«ü±Ð

¥»©«³Ì«á¥Ñ n7822123 ©ó 2020-6-30 00:49 ½s¿è

¦^´_ 20# °a¤ªºµ


·Ç´£¤j¤jªºª©¥» ±Æª©§ó¬O²M·¡

·Ç¤jªºª©¥»¬Ý°_¨Ó«ÜµÎªA¡A

§A¤w¸g­n©ñ±ó§A­ì¥»«Üªáªº®æ¦¡¡A·Q¥Î·Ç¤jªºª©¥»¤F¶ÜXD  ¡@


»Ý¨D¡G

¦pªG­n³]©w´X½ü¤W¡@©]¯Z¡@¤é¯Z
¦ý§ÚÀ³¸Ó¦b­þ¤@¬q­×§ï¡@­n«ç»ò¼g¡H

·Ç¤j¤£¬O¥Î¯ÂVBA°µªº¡A¦³·f°t©w¸q¦WºÙ¡B¨ç¼Æ¤½¦¡

²³æ¨Ó»¡¡A¤£¯à¥uµ¹§AVBAµ{¦¡~

¥ý¶}Äæ¦ì§a~~¦p¤U¹Ï





Àx¦s®æC8 ·s¼W¤@­Ó¿ï¶µ "¤é©]½ü¬y"

°²³]¤@¼Ë°µ4¥ð2¡A6¤Ñ¬°1½ü¡A²Ä1~4½ü¤W¤é¯Z¡A²Ä6~10½ü¤W©]¯Z¡A²Ä11½ü¤S¦^¨ì¤é¯Z¡A¥H¦¹Ãþ±À~

§A­nªº¥\¯à¡A¥u»Ý­n­×§ï "Sub ¤é¾ä_±Æ¯Z" ³o­Óµ{§Ç§Y¥i

¦Ó¥B¸ê®Æªº³¡¤À§ó¬O¥u»Ý­×§ïAD¡BAE ¨âÄæ¡A¦¹µ{§Çªº«á¬qµ{¦¡»P¸ê®ÆµLÃö¡A¤º®e¤j·§¬O

¥ÎVBA³]¤½¦¡(§ìAD¡BAE¸ê®Æ)>½Æ»s¤½¦¡>²M°£¤½¦¡>³]Àx¦s®æÃC¦â(¨Ì[aRngColor]®æ¦¡)

¤]´N¥u¬O§â¤ë¾ä®æ¦¡§Ë¥X¨Ó¦Ó¤w¡A§A¦³¿³½ì¤]¥i¥H¬ã¨s¤@¤U

·Ç¤j¼gªºµ{¦¡À³¸Ó¥i¥HÅý§A¾Ç¨ì«Ü¦h~~~«e´£¬O§A­n¯à¬Ý±oÀ´~

®Ú¾Ú§Aªº»Ý¨D¡A§Ú§â§Ú·s¼Wªºµ{¦¡¥Î¬õ¦â Hight Light

³o¼Ë§A¥i¥H¤ñ¸û¦n°Ï¤À§ï¤F­þ¨Ç¡A¬°¤°»ò³o¼Ë§ï~

§Úªºµ{¦¡¬O°²³] ¥ý½ü¤é¯Z ¦A½ü©]¯Z¡A¦pªG§A­nÄA­Ë¡A¥i¥H¸ÕµÛ§ï¬Ý¬Ý~¯uªº¤£Ãø


Sub ¤é¾ä_±Æ¯Z()
Dim D1&, D2&, xDay&, xMon&, xTP$, xVM&, xVD1%, xVD2%
Dim Arr, i&, R&, C&, C2&, N&, TN&, T$, xR As Range
If [A_Head] = [A_End] Then MsgBox "**¡e¤ë¾ä¡f©|¥¼«Ø¥ß!   ":  Exit Sub
D1 = [A_Head]: D2 = [A_End] + 30
'---------------------------------
xDay = [aRng1]: If xDay = 0 Then xDay = D1
If xDay < D1 Or xDay > D2 Then MsgBox "¡e±Æ¯Z­º¤é¡f¶W¥X¤é¾ä½d³ò!   ":  Exit Sub
xMon = Format(xDay, "yyyymm")
'---------------------------------
xTP = [aRng2]: If xTP = "" Then MsgBox "¡e±Æ¯Z¯Z§O¡f¥¼¿é¤J!   ": Exit Sub
If xTP = "¤é©]½ü¬y" Then Turn = True
xVM = [aRng3]: If xVM = 0 Then MsgBox "¡e±Æ¯Z¤ë¼Æ¡f¥¼¿é¤J!   ": Exit Sub
xVD1 = [aRng4]: If xVD1 = 0 Then MsgBox "¡e±Æ¯Z¤Ñ¼Æ¡f¥¼¿é¤J!   ": Exit Sub
xVD2 = [aRng5]: If xVD2 = 0 Then MsgBox "¡e¥ð®§¤Ñ¼Æ¡f¥¼¿é¤J!   ": Exit Sub
Dturn = [aRng6]: NTurn = [aRng7]
If Turn And (Dturn = "" Or NTurn = "") Then MsgBox "¡e¤é¡B©]¯Z½ü¼Æ¡f¥¼¿é¤J§¹¥þ"  : Exit Sub

'---------------------------------
Call ¤é¾ä_±Æ¯Z_­«¸m
ReDim Arr(1 To D2 - xDay + 1, 1 To 2)
For i = xDay To D2
    xMon = Format(i, "yyyymm")
    If xMon <> YM Then YM = xMon: N = N + 1
    TN = Int((i - D1 + 1) / (xVD1 + xVD2))
    If N > xVM Then Exit For
    R = R + 1
    C = C Mod (xVD1 + xVD2) + 1
    C2 = TN Mod (Dturn + NTurn) + 1
    T = IIf(Turn, IIf(C2 > Dturn, "©]¯Z", "¤é¯Z"), xTP)

    If C > xVD1 Then T = "¥ð®§"
    Arr(R, 1) = i
    Arr(R, 2) = T
Next i
[AD1] = "¡Õ¤é´Á¡Ö": [AE1] = "¡Õ¯Z§O¡Ö"
[AD2:AE2].Resize(R) = Arr
...
...
...


½m²ß¤é´Áv01-0630.rar (107.3 KB)
µ{¦¡¬O¨Ì»Ý¨D¼gªº¡A»Ý¨Dªí¹F¤£²M·¡
©ÎªÌ¨S¦³¤W¶Çªþ¥ó¡A·R²ö¯à§U

TOP

¦^´_ 21# n7822123


«u! ¬Ý¿ù¤F¡A³o¦æ§ï¤@¤U

TN = Int((i - xDay + 1) / (xVD1 + xVD2))
µ{¦¡¬O¨Ì»Ý¨D¼gªº¡A»Ý¨Dªí¹F¤£²M·¡
©ÎªÌ¨S¦³¤W¶Çªþ¥ó¡A·R²ö¯à§U

TOP

ÁÂÁÂn7822123¤j¤jªº«üÂI Åý§Ú·Q¨ì §â -1 ªº¦ì¸m§ï¤@¤U´N¥i¥H¤F
DateAdd("d", -1, K) Mod 12 + 1
¦Ñ¹ê»¡§Ú¯uªº¬Ý¤£À´  ¥u¯àF8 ºCºC¬ã¨sXD
·Ç¤jªºª©¥»¹ï§Ú¨Ó»¡¦n½ÆÂø ...¦pªG¦³¤£À´ªº¦a¤è ¦A½Ð±Ðn7822123¤j¤jÁÙ¦³¦U¦ì«e½ú­Ì ^^"

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-7-11 20:05 ½s¿è

½Ð°Ý ¦³Ãö©ó¤ë½ü¯Z  ¸ó¤ëªº³¡¤À°ÝÃD
·í¤@­Ó¤ë ªº³Ì«á¤@½ü ¨ì ¤U­Ó¤ëªº²Ä¤@½ü
¸Ó¥Î«ç»ò¼Ëªº§PÂ_¤è¦¡ ¤~¥i¥H§¹¾ãªº §â¤@¾ã½üªº¤Ñ¼Æ½ü§¹
¦Ó¤£·|¦]¬°¹j¤ëªº°ÝÃD ¾É­P ¿ù»~
¹Á¸Õ¤F­p¼Æªº¤è¦¡ ÁÙ¬O¤£¦æ ·|¥d¨ì¤ë¥÷°ÝÃD ¦³ªº¤ë¥÷¤Ñ¼Æ¤£¤@¼Ë
½Ð«e½ú­Ì À°À°¦£

§ïª©«áªº¯Zªí½m²ß.rar (20.09 KB)

TOP

°ÝÃD¸Ñ¨M¤F  ÁÂÁ·Ǵ£¤j¤jªºÀÉ®× ÁÙ¦³  n7822123¤j¤jªº ´£ÂI
«á¨Ó·Q¨ìªº¤è¦¡  ¬O§Q¥Î  False ¸ò True  ªº Boolean ÅܼƠ µM«á¦A§â ½ü¯ZªºÃC¦â¦¸¼Æ¥ý¦s¨ì Àx¦s®æ
¦A©µ¥Î ´N¥i¥H¤F XD
  1.                 If Y <= Cells(6, 11) Then
  2.                
  3.                     Select Case DateDiff("d", DateValue(d & "/1/1"), Cells(K, 1)) Mod Cells(5, 11) + 1
  4.                     Case 1 To Cells(3, 11)
  5.                     
  6.                     If Cells(1, 10) <> Year(Date) Then sss = True
  7.                     
  8.                     If yyy <> 0 And yyy <> Cells(3, 11) And sss = True Then
  9.                     
  10.                         Cells(U + 1, W) = "©]¯Z"
  11.                         Cells(U + 1, W).Font.Color = RGB(114, 0, 55)
  12.                         Cells(U + 1, W).Interior.Color = RGB(255, 208, 0)
  13.                         
  14.                         If Cells(U + 1, W) <> "¥ð°²" And Cells(U + 1, W) <> "¤W¯Z" Then yyy = yyy + 1
  15.                         Cells(1, 13) = yyy 'Àx¦s©µ¦ù¤Ñ¼Æ
  16.                         
  17.                         If yyy = Cells(3, 11) Then
  18.                            yyy = 0
  19.                            sss = False
  20.                         End If
  21.                         
  22.                     Else
  23.                         Cells(U + 1, W) = "¤W¯Z"
  24.                         Cells(U + 1, W).Font.Color = RGB(0, 0, 89)
  25.                         Cells(U + 1, W).Interior.Color = RGB(150, 201, 123)
  26.                     End If
  27.                     
  28.                         If Cells(U + 1, W) <> "¥ð°²" And Cells(U + 1, W) <> "©]¯Z" Then kkk = kkk + 1
  29.                         Cells(1, 12) = kkk 'Àx¦s©µ¦ù¤Ñ¼Æ
  30.                         If kkk = Cells(3, 11) Then kkk = 0
  31.                         
  32.                     End Select
  33.                     
  34.                 ElseIf Y <= Cells(6, 11) * 2 Then
  35.                
  36.                     Select Case DateDiff("d", DateValue(d & "/1/1"), Cells(K, 1)) Mod Cells(5, 11) + 1
  37.                     Case 1 To Cells(3, 11)
  38.                     
  39.                     If Cells(1, 10) <> Year(Date) Then sss = True
  40.                     
  41.                     If kkk <> 0 And kkk <> Cells(3, 11) And sss = True Then
  42.                         
  43.                         Cells(U + 1, W) = "¤W¯Z"
  44.                         Cells(U + 1, W).Font.Color = RGB(0, 0, 89)
  45.                         Cells(U + 1, W).Interior.Color = RGB(150, 201, 123)
  46.                         
  47.                         If Cells(U + 1, W) <> "¥ð°²" And Cells(U + 1, W) <> "©]¯Z" Then kkk = kkk + 1
  48.                         Cells(1, 12) = kkk 'Àx¦s©µ¦ù¤Ñ¼Æ

  49.                         If kkk = Cells(3, 11) Then
  50.                            kkk = 0
  51.                            sss = False
  52.                         End If
  53.                         
  54.                     Else
  55.                         Cells(U + 1, W) = "©]¯Z"
  56.                         Cells(U + 1, W).Font.Color = RGB(114, 0, 55)
  57.                         Cells(U + 1, W).Interior.Color = RGB(255, 208, 0)
  58.                     End If
  59.                     
  60.                         If Cells(U + 1, W) <> "¥ð°²" And Cells(U + 1, W) <> "¤W¯Z" Then yyy = yyy + 1
  61.                         Cells(1, 13) = yyy 'Àx¦s©µ¦ù¤Ñ¼Æ
  62.                         If yyy = Cells(3, 11) Then yyy = 0
  63.                            
  64.                     End Select
  65.                     
  66.                 End If
½Æ»s¥N½X
ÁÂÁ¤j¤j­Ìªº«ü¾É

TOP

        ÀR«ä¦Û¦b : ¦Y­W¤F­W¡B­WºÉ¤Ü¨Ó¡A¨ÉºÖ¤FºÖ¡BºÖºÉ´d¨Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD