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

[µo°Ý] ¿ï¾Ü¤U©Ô¦¡²M³æ¦Û°Ê¶ñ¤J

¦^´_ 12# Andy2483
·PÁÂAndy2483¤j¤£¹½¨ä·Ðªº«ü¾É,«á¶i·|¦n¦n«ôŪ®ø¤Æ,¦³°ÝÃD¦A½Ð±Ð±z,·P®¦
¦~ÄÖ¤£¤p,¦ý§Ú«Ü·Q¾Ç

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-4-10 16:27 ½s¿è

¦^´_ 11# bhsm

ÁÂÁ«e½ú,¥H¤U¤ß±oµù¸Ñ½Ð°Ñ¦Ò
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'¡ô·í¨Ï¥ÎªÌ©Î¥~³¡³sµ²Åܧó¤u§@ªí¤¤ªºÀx¦s®æ®É·|µo¥Í¦¹¨Æ¥ó
With Target
'¡ô¥H¤U¬OÃö©óIJµo¨Æ¥óªºµ{§Ç
   If .Address = "$E$4" Or .Address = "$F$4" Then
   '¡ô¦pªGIJµoÀx¦s®æ¬O[E4] ©Î[F4]ªº¦ì§}
      Dim Y, S, Brr, i%, j%, T$, N&
      '¡ô«Å§iÅܼÆ:(Y,S,Brr)¬O³q¥Î«¬ÅܼÆ,(i,j)¬Oµu¾ã¼Æ,T¬O¦r¦êÅܼÆ
      'N¬Oªø¾ã¼Æ

      Set Y = CreateObject("Scripting.Dictionary")
      '¡ô¥OY³o³q¥Î«¬ÅܼƬO ¦r¨å
      Brr = [F9].Resize(6, 1)
      '¡ô¥OBrr³o³q¥Î«¬ÅܼƬO ¤Gºû°}¦C,¥H[F9]¦V¤UÂX®i6®æªºÀx¦s®æ­È±a¤J
      For i = 4 To 5
      '¡ô³]¶¶°j°é!i±q4¨ì 5
         For j = 4 To 6
         '¡ô³]¶¶°j°é!j±q4¨ì 6
            T = Cells(i, 2) & "|" & Cells(j, 3)
            '¡ô¥OT³o¦r¦êÅܼƬO i°j°é¦CBÄæÀx¦s®æ­È³s±µ "|",
            '¦A³s±µ j°j°é¦CCÄæÀx¦s®æ­È¤§«áªº·s¦r¦ê

            S = Val(Cells(i, 2)) + Val(Cells(j, 3))
            '¡ô¥OS³o³q¥Î«¬ÅܼƬO i°j°é¦CBÄæÀx¦s®æ­ÈÂà¤Æ¬°¼Æ¦r­È,
            '¥[¤Wj°j°é¦CCÄæÀx¦s®æ­ÈÂà¤Æ¬°¼Æ¦r­È¤§«áªº·s¼Æ­È

            N = N + 1: Y(T) = S
            '¡ô¥ON³oªø¾ã¼ÆÅÜ¼Æ ²Ö¥[1
            '¥O¥HTÅܼƬ°key,item¬OSÅܼÆ,¯Ç¤JY¦r¨å

            If T = [E4] & "|" & [F4] Then Brr(N, 1) = Y(T)
            '¡ô¦pªGTÅܼÆ(¦r¦ê)¦P
            '[E4]Àx¦s®æ­È³s±µ"|" ¦A³s±µ[F4]Àx¦s®æ­È²Õ¦¨ªº·s¦r¦ê??
            '´N¥ONÅܼƦC²Ä1ÄæBrr°}¦C­È¬O ¥HTÅܼƬdY¦r¨åªºitem­È

         Next
      Next
      [F9].Resize(6, 1) = Brr
      '¡ô[F9]¦V¤UÂX®i6®æªºÀx¦s®æ­È¥H Brr°}¦C­È±a¤J
      Set Y = Nothing: Erase Brr
      '¡ôÄÀ©ñÅܼÆ
   End If
End With
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 10# Andy2483
°J¤ß·PÁÂAndy2483¤jªº«ü¾É,¥¿¬O¤p§Ì·Q­nªº,¤£ª¾±z¬O§_¦³ªÅ¥i¦b±zªºµ{¦¡½X¤¤¥[¤J¤¤¤å»¡©ú?Åý¤p§Ì¾Ç²ß,ÁÂÁÂ
¦~ÄÖ¤£¤p,¦ý§Ú«Ü·Q¾Ç

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-4-10 15:15 ½s¿è

¦^´_ 9# bhsm

¦pªG§Æ±æ§ïÅÜE4©ÎF4®É¤§«eªº¼Æ­È¤]­n«O¯d¸Ó¦p¦ó³B²z?
¨Ò¦p:E4=5¡BF4=9«hF9=14,¦ý¦pªG§ó§ïE4=10,F4=7®É,§Æ±æF9=14³Q«O¯d¤£³Q²M°£±¼,¦P®ÉÅã¥ÜF9=14.F13=17------

    ÁÂÁ«e½ú¦A¦^´_
«á¾ÇÂǦ¹©«¬ã¨sVBA¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

Private Sub Worksheet_Change(ByVal Target As Range)
With Target
   If .Address = "$E$4" Or .Address = "$F$4" Then
      Dim Y, i%, j%, T$, S, Brr
      Set Y = CreateObject("Scripting.Dictionary")
      Brr = [F9].Resize(6, 1)
      For i = 4 To 5
         For j = 4 To 6
            T = Cells(i, 2) & "|" & Cells(j, 3)
            S = Val(Cells(i, 2)) + Val(Cells(j, 3))
            N = N + 1: Y(T) = S
            If T = [E4] & "|" & [F4] Then Brr(N, 1) = Y(T)
         Next
      Next
      [F9].Resize(6, 1) = Brr
      Set Y = Nothing: Erase Brr
   End If
End With
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 8# Andy2483
ÁÂÁÂAndy2483¤jªº«ü¾É,¥i¥H¥Î¤F,¦ý¦pªG§Æ±æ§ïÅÜE4©ÎF4®É¤§«eªº¼Æ­È¤]­n«O¯d¸Ó¦p¦ó³B²z?
¨Ò¦p:E4=5¡BF4=9«hF9=14,¦ý¦pªG§ó§ïE4=10,F4=7®É,§Æ±æF9=14³Q«O¯d¤£³Q²M°£±¼,¦P®ÉÅã¥ÜF9=14.F13=17------,½Ð¤£§[«ü±Ð,ÁÂÁÂ
¦~ÄÖ¤£¤p,¦ý§Ú«Ü·Q¾Ç

TOP

¦^´_ 7# bhsm


    ÁÂÁ«e½ú¦^´_
«á¾ÇÂǦ¹©«½m²ß¤½¦¡,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

F9~F14¤½¦¡:
=IFERROR(IF(E$4=INDIRECT("B"&(INT(ROW()/12)+4)),E$4,"")+IF(F$4=INDIRECT("C"&MOD(ROW(),3)+4),F$4,""),"")



PS:5¼Ó¤è®×ªºVBAµ{¦¡½X»Ý§R°£
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¥»©«³Ì«á¥Ñ bhsm ©ó 2023-4-10 10:35 ½s¿è

¦^´_ 5# Andy2483
·PÁÂAndy2483¤j«ü¾É,§Ú±N±z¼gªºµ{¦¡©ñ¤J¤u§@ªí1¤¤«á,±o¨ìªºµ²ªG¬OF5ªº¤½¦¡³Q²M°£¤F,©Ò¥H¤]µLªk¦Û°Ê¶ñ¤JF9~F14,¤£ª¾§Ú¦b­þ­ÓÀô¸`¥X¿ù,¯à§_½Ð±zÀ°§Ú­×¥¿§ÚªºÀ£ÁYÀÉ?ÁÂÁÂ

A.rar (12.23 KB)

¦~ÄÖ¤£¤p,¦ý§Ú«Ü·Q¾Ç

TOP

¦^´_ 4# sillykin
·PÁÂsillykin¤j¦A¦¸«ü¾É,´ú¸Õµ²ªGÁÙ¬OµLªk±N¼Æ­È¶ñ¤JF9~F14¡A¯à§_½Ð±z¥´¶}§ÚªºÀ£ÁYÀɬݬݧڭþ¸Ì·d¿ù¤F¡H

1-1.rar (11.51 KB)

¦~ÄÖ¤£¤p,¦ý§Ú«Ü·Q¾Ç

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-4-10 09:40 ½s¿è

¦^´_ 1# bhsm


    ÁÂÁ½׾Â,ÁÂÁ«e½úµoªí¦¹¥DÃD»P½d¨Ò
«á¾ÇÂǦ¹©«½m²ß¦r¨å»PIJµo,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò

°õ¦æ«e:


[F4]¿é¤J7 °õ¦æµ²ªG:



Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
   If .Address = "$E$4" Or .Address = "$F$4" Then
      Dim Y, i%, j%, T$, S
      Set Y = CreateObject("Scripting.Dictionary")
      For i = 4 To 5
         For j = 4 To 6
            T = Cells(i, 2) & "|" & Cells(j, 3)
            S = Cells(i + j + (3 ^ (i - 4)), 6)
            If Not Y.Exists(T) Then
               Y(T) = S
               ElseIf Y(T) <> S Then
                  Y(T) = "µLªk¿ëÃÑ"
            End If
         Next
      Next
      [F5] = Y([E4] & "|" & [F4])
      If [F5] = "µLªk¿ëÃÑ" Then MsgBox "±Æ¦C²Õ¦X¤l­«½ÆµLªk¿ëÃÑ"
      Set Y = Nothing
   End If
End With
End Sub
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y

TOP

¦^´_ 3# bhsm


   À°±z­×§ï¤F¤@¤U¡A½Ð¸Õ¸Õ¬Ý³o­Óª©¥»¡G

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$E$4" Or Target.Address = "$F$4" Then
        If Range("E4").Value = "B4" Then
            Select Case Range("F4").Value
                Case "C4"
                    Range("F5").Value = Range("F9").Value
                Case "C5"
                    Range("F5").Value = Range("F10").Value
                Case "C6"
                    Range("F5").Value = Range("F11").Value
            End Select
        ElseIf Range("E4").Value = "B5" Then
            Select Case Range("F4").Value
                Case "C4"
                    Range("F5").Value = Range("F12").Value
                Case "C5"
                    Range("F5").Value = Range("F13").Value
                Case "C6"
                    Range("F5").Value = Range("F14").Value
            End Select
        End If
    End If
End Sub

¥D­nªº§ï°Ê¬O±N²Ä¤@­Ó Select Case §ï¦¨ If...ElseIf...End If¡A¦]¬°±z­n®Ú¾Ú E4 ªº­È¨Ó¤À§O³B²z¤£¦Pªº±¡ªp¡C¥t¥~¡A±z¤]¥i¥H¦Ò¼{¨Ï¥Î¸ê®ÆÅçÃÒ¥\¯à¨Ó«Ø¥ß¤U©Ô¦¡²M³æ¡A³o¼Ë¥i¯à·|§ó²³æ¤@¨Ç¡C

TOP

        ÀR«ä¦Û¦b : ¯à¥I¥X·R¤ß´N¬OºÖ¡A¯à®ø°£·Ð´o´N¬O¼z¡C
ªð¦^¦Cªí ¤W¤@¥DÃD