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

[µo°Ý] vbaªº¿z¿ï¥\¯à (¨ú®ø³¡¤À¿z¿ï)

¦^´_ 30# wei9133

§A§â jcchiang«e½úªº ¥H¤U³o¬q§ï¤@¤U ¬Ý¬Ý ¬O¤£¬O§A­nªºµ²ªG

Sub ex3()
Dim d As Object, ar As Object, r
Dim i%, AA$, a
Application.ScreenUpdating = False
Set d = CreateObject("Scripting.Dictionary")
Set ar = Sheets(1).[a1].CurrentRegion

For i = 1 To ar.Rows.Count
   AA = Join(Application.Transpose(Application.Transpose(ar(i, 1).Resize(, 102))), ",") & "," & ar(i, 106) '«Ø¥ß§PÂ_±ø¥ó
   If Not d.exists(AA) Then   '¦r¨å¤º¬dµL¸Ó±ø¥ó
      a = Application.Transpose(Application.Transpose(ar(i, 1).Resize(, 115)))
      If a(103) = "" Then a(103) = 1 '³Ó³õªÅ¥Õ¶ñ¤J1
      d(AA) = a '±N¸ê®Æ©ñ¦^¦r¨å
   Else
      a = Application.Transpose(Application.Transpose(d(AA)))   '±N¦r¨å¸ê®Æ¨ú¥X
      If ar(i, 103) = "" Then a(103) = a(103) + 1 Else a(103) = a(103) + ar(i, 103) '³Ó³õªÅ¥Õ³Ó³õ²Ö¥[1,¤£¬OªÅ¥Õ«h±NÄæ¦ì­È¬Û¥[
      a(105) = a(105) + ar(i, 105) '±Ñ§½²Ö¥[
      For Each r In Array(104, 107, 109, 115) '±N³Æµù,DC,DE,DKÄæ¦ì¸ê®Æ¦X¨Ö
         If a(r) <> "" And ar(i, r) <> "" Then '¦pªG¦r¨å»PÄæ¦ì³£¦³¸ê®Æ,¨Ï¥Î","¬Û³s
            a(r) = a(r) & "," & ar(i, r)
         ElseIf a(r) = "" And ar(i, r) <> "" Then '¦pªG¦r¨å¸ê®Æ¬°ªÅ¥Õ,Äæ¦ì¬O¦³¸ê®Æªº,¨Ï¥ÎÄæ¦ì¸ê®Æ
            a(r) = ar(i, r)
         End If
      Next
      d(AA) = a   '±N¸ê®Æ©ñ¦^¦r¨å
   End If
Next
With Sheets(2)  '¦b²Ä¤G­ÓSheet¶ñ¤J¸ê®Æ
.[a1].CurrentRegion.Clear '²M°£Sheet¸ê®Æ
.[a1].Resize(d.Count, 115) = Application.Transpose(Application.Transpose(d.items)) '±N¦r¨å¸ê®Æ¦C¥X
'For Each r In .Range(.[cy2], .[cy2].End(4))  '«O¯d³Ó³õ+1
'   r.Value = r.Value + 1
'Next

End With
Set d = Nothing
Application.ScreenUpdating = True
End Sub

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-10-24 21:11 ½s¿è

¦^´_ 34# wei9133

½Ð°Ý§A­nªºµ²ªG¬O¤£¬O³o¼Ë
¥ý¥ª¥k¤ñ¹ï ­Y¬O 1~51  ¸ò 52~102 ¬Û¦P®É + ¬P¶H106 ¦¹®É(³Ó²v =  "" ©Î ±Ñ§½ = ""  ¥»¨­´N¬O =1 ©ÎµÛ =-1 ?)  ·í§@´M§ä¤ñ¹ïªº¥Ø¼Ð  
¦A´M§ä¤ñ¹ï¤W¤U 1~102 + ¬P¶H106 ­Y¬Û¦P®É  ¦b¬Ý 103³Ó²v  ¸ò  105±Ñ§½ ¶i¦æ²Ö¥[
²Ö¥[«áªº¼Æ­È­n¦b ¦X¨Ö¸Ó¦Cªº¶¶§Ç¤W
¦X¨Ö¸Ó¦Cªº¶¶§Ç¬O   ¥ý107 A  ­Y =""  ´N¦X¨Ö¦b 109  X   ­Y ="" ´N¦X¨Ö¦b   115¼È¦s   ­Y =""  ´N¦X¨Ö¦b  104³Æµù
ÁÙ¬O»¡ ´N¹³ jcchiang «e½ú ¸ò ­ã´£¤j¤j ©Ò»¡ªº ³o¼Ë½ÆÂøªº²Õ¦Xºâªk?
©ÎµÛ¯à§_²³æ©úÁA´N¦n §Ú¹ê¦b¤£¤Ó©ú¥Õ©êºp...¤p§Ì¼Æ¾Ç¤£¦n

TOP

¦^´_ 34# wei9133

¦³ªÅÀ°§Ú¬Ý¤@¤U ¬O¤£¬O³o¼Ëªºµ²ªG ÁÂÁÂ

javascript:;

¹ï¾Ô²Î­p -1025.rar (699.95 KB)

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-10-25 10:49 ½s¿è

¦^´_ 34# wei9133

·Pı±Ñ§½ ©Ç©Çªº ©Ò¥H§ï¤F¤@¤U ¦³ªÅÀ°§Ú¬Ý¤@¤U ·PÁ ¶]ªº³t«×ºC¤F¤@¨Ç ¤£ª¾¦p¦ó¥[§Ö³t«×.....
  1. Public Sub ½m²ß1025()
  2. Application.ScreenUpdating = False
  3. Sheets(1).Select
  4. Sheets(2).[a1].CurrentRegion.Clear
  5. Dim Arr, D, xD, xD1, x&, y&, k&, T1$, T2$, T3$, T4$
  6. Set xD = CreateObject("Scripting.Dictionary")
  7. Set xD1 = CreateObject("Scripting.Dictionary")
  8. Arr = Range(Cells(Rows.Count, 1).End(xlUp), Cells(1, 115))
  9. For x = 2 To UBound(Arr, 1)
  10.     T1 = ""
  11.     For y = 1 To 51
  12.         T1 = T1 & Arr(x, y)
  13.         If Arr(x, y) = "" Then T1 = T1 & "-"
  14.     Next y
  15.     T3 = ""
  16.     For y = 52 To 102
  17.         T3 = T3 & Arr(x, y)
  18.         If Arr(x, y) = "" Then T3 = T3 & "-"
  19.     Next y
  20.     If T1 = T3 Then
  21.        T1 = T1 & T3 & Arr(x, 106)
  22.        T3 = ""
  23.         If Arr(x, 103) = "" Then
  24.            Arr(x, 103) = 1
  25.            xD(T1) = xD(T1) + Arr(x, 103)
  26.         ElseIf Arr(x, 103) <> "" Then
  27.            xD(T1) = xD(T1) + Arr(x, 103)
  28.         End If
  29.         xD1(T1) = xD1(T1) + Arr(x, 105)
  30.     End If
  31. Next x
  32. T1 = "": T3 = ""
  33. For Each D In xD
  34.     For x = UBound(Arr, 1) To 2 Step -1
  35.         T2 = ""
  36.         For y = 1 To 51
  37.             T2 = T2 & Arr(x, y)
  38.             If Arr(x, y) = "" Then T2 = T2 & "-"
  39.         Next y
  40.         T4 = ""
  41.         For y = 52 To 102
  42.             T4 = T4 & Arr(x, y)
  43.             If Arr(x, y) = "" Then T4 = T4 & "-"
  44.         Next y
  45.         If T2 = T4 Then
  46.             T2 = T2 & T4 & Arr(x, 106)
  47.             T4 = ""
  48.             If D = T2 Then
  49.                 Arr(x, 103) = xD(D)
  50.                 Arr(x, 105) = xD1(D)
  51.             End If
  52.         End If
  53.     Next x
  54. Next D
  55. T2 = "": T4 = "": D = "": k = 1
  56. For x = 2 To UBound(Arr, 1)
  57.     If Arr(x, 103) <> "" Or Arr(x, 105) <> "" Then
  58.         If Arr(x, 107) <> "" Or Arr(x, 109) <> "" _
  59.         Or Arr(x, 115) <> "" Or Arr(x, 104) <> "" Then
  60.             k = k + 1
  61.         End If
  62.         For y = 1 To UBound(Arr, 2)
  63.             If Arr(x, 107) <> "" Or Arr(x, 109) <> "" _
  64.             Or Arr(x, 115) <> "" Or Arr(x, 104) <> "" Then
  65.                 Arr(k, y) = Arr(x, y)
  66.             End If
  67.         Next y
  68.     End If
  69. Next x
  70. Set xD = Nothing
  71. Set xD1 = Nothing
  72. Sheets(2).Range("A1").Resize(k, UBound(Arr, 2)) = ""
  73. Sheets(2).Range("A1").Resize(k, UBound(Arr, 2)) = Arr
  74. Erase Arr
  75. Sheets(2).Select
  76. Application.ScreenUpdating = True
  77. End Sub
½Æ»s¥N½X

TOP

¦^´_ 43# wei9133

¦³ªÅÀ°§Ú¬Ý¤@¤U ¬O¤£¬O³o¼Ë  ¦pªG¦³°ÝÃD ½Ð§i¶D§Ú°ÝÃD¥X¦b­þ¸Ì ·PÁÂ
javascript:;

¹ï¾Ô²Î­p -1030.rar (32.61 KB)

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-10-30 01:36 ½s¿è

¦^´_ 43# wei9133

©ÎµÛ§ï¦¨³o¼Ë ¬Ý¬Ý ¬O¤£¬O§A­nªºµ²ªG  ÁÙ¬O»¡  jcchiang«e½ú ªº¤~¬O§A­nªºµ²ªG
  1. Public Sub ½m²ß1030()
  2. Sheets(2).Select
  3. Rows(2).Select
  4. ActiveWindow.FreezePanes = False
  5. Application.ScreenUpdating = False
  6. Sheets(2).[a1].CurrentRegion.Clear
  7. Sheets(1).Select
  8. Dim Arr, d, xD, x&, y&, k&, T1$, T2$, T3$, T4$
  9. Set xD = CreateObject("Scripting.Dictionary")
  10. Arr = Range(Cells(Rows.Count, 1).End(xlUp), Cells(1, 115))
  11. For x = 2 To UBound(Arr, 1)
  12.     T1 = ""
  13.     For y = 1 To 51
  14.         T1 = T1 & Arr(x, y)
  15.         If Arr(x, y) = "" Then T1 = T1 & "-"
  16.     Next y
  17.     T3 = ""
  18.     For y = 52 To 102
  19.         T3 = T3 & Arr(x, y)
  20.         If Arr(x, y) = "" Then T3 = T3 & "-"
  21.     Next y
  22.     If T1 = T3 Then
  23.        T1 = T1 & T3 & Arr(x, 106)
  24.        T3 = ""
  25.         If Arr(x, 103) = "" Then
  26.            Arr(x, 103) = 1
  27.            xD(T1) = xD(T1) + Arr(x, 103)
  28.         ElseIf Arr(x, 103) <> "" Then
  29.            xD(T1) = xD(T1) + Arr(x, 103)
  30.         End If
  31.         xD(T1 & 105) = xD(T1 & 105) + Arr(x, 105)
  32.     End If
  33. Next x
  34. T1 = "": T3 = ""
  35. For Each d In xD
  36.     For x = UBound(Arr, 1) To 2 Step -1
  37.         T2 = ""
  38.         For y = 1 To 51
  39.             T2 = T2 & Arr(x, y)
  40.             If Arr(x, y) = "" Then T2 = T2 & "-"
  41.         Next y
  42.         T4 = ""
  43.         For y = 52 To 102
  44.             T4 = T4 & Arr(x, y)
  45.             If Arr(x, y) = "" Then T4 = T4 & "-"
  46.         Next y
  47.         If T2 = T4 Then
  48.             T2 = T2 & T4 & Arr(x, 106)
  49.             T4 = ""
  50.             If d = T2 Then
  51.                 E = E + 1
  52.                 If E = 1 Then
  53.                    If Arr(x, 103) > 0 Then Arr(x, 103) = xD(d)
  54.                    If Arr(x, 103) <= 1 Then Arr(x, 103) = ""
  55.                 Else
  56.                     Arr(x, 103) = xD(d) - 1
  57.                     If Arr(x, 103) < 0 Then Arr(x, 103) = Arr(x, 103) * -1
  58.                 End If
  59.                 Arr(x, 105) = xD(d & 105)
  60.                 If xD(d & 105) = 0 Then Arr(x, 105) = ""
  61.             End If
  62.         End If
  63.     Next x
  64.     E = 0
  65. Next d
  66. T2 = "": T4 = "": d = "": k = 1
  67. Set xD = Nothing
  68. For x = 2 To UBound(Arr, 1)
  69.     If Arr(x, 107) <> "" Or Arr(x, 109) <> "" _
  70.     Or Arr(x, 115) <> "" Or Arr(x, 104) <> "" Then
  71.         k = k + 1
  72.         For y = 1 To UBound(Arr, 2)
  73.             Arr(k, y) = Arr(x, y)
  74.         Next y
  75.     End If
  76. Next x
  77. T2 = "": T4 = ""
  78. Sheets(2).Range("A1").Resize(k, UBound(Arr, 2)) = ""
  79. Sheets(2).Range("A1").Resize(k, UBound(Arr, 2)) = Arr
  80. Erase Arr
  81. Application.ScreenUpdating = True
  82. Sheets(2).Select
  83. Rows(2).Select
  84. ActiveWindow.FreezePanes = True
  85. Cells(Rows.Count, 106).End(xlUp).Select
  86. End Sub
½Æ»s¥N½X

TOP

¦^´_ 43# wei9133
©êºp­è¤~µo²{²Ö¥[³Ó²v¦³°ÝÃD §ï¤@¤U  ¦³±±¦AÀ°§Ú¬Ý¤@¤U  ·PÁÂ


javascript:;

¹ï¾Ô²Î­p -1030_01.rar (33.82 KB)

TOP

¦^´_ 49# ­ã´£³¡ªL


·PÁ ·Ç¤j«ü¾É ¤£ª¾¹D³o¼Ë§ï ¬O¤£¬O¦³±µªñ ·Ç¤j»¡ªº¤èªk
¬Ý°_¨ÓÁÙ¬O¦³®t«Ü¦h µ²ªG»P jcchiang«e½úªº¤£¦P  ¤£ª¾¦p¦ó­×§ï...
  1. Public Sub ½m²ß1030_02()
  2. Sheets(2).Select
  3. Rows(2).Select
  4. ActiveWindow.FreezePanes = False
  5. Application.ScreenUpdating = False
  6. Sheets(2).[a1].CurrentRegion.Clear
  7. Sheets(1).Select
  8. Dim Arr, D, xD, x&, y&, k&, T1$, T2$, T3$, T4$
  9. Set xD = CreateObject("Scripting.Dictionary")
  10. Arr = Range(Cells(Rows.Count, 1).End(xlUp), Cells(1, 115))
  11. For x = 2 To UBound(Arr, 1)
  12.     T1 = ""
  13.     For y = 1 To 51
  14.         T1 = T1 & Arr(x, y)
  15.         If Arr(x, y) = "" Then T1 = T1 & "-"
  16.     Next y
  17.     T3 = ""
  18.     For y = 52 To 102
  19.         T3 = T3 & Arr(x, y)
  20.         If Arr(x, y) = "" Then T3 = T3 & "-"
  21.     Next y
  22.     If T1 = T3 Then
  23.         T1 = T1 & T3 & Arr(x, 106)
  24.         T3 = ""
  25.         If Arr(x, 103) = "" Then
  26.            Arr(x, 103) = 1
  27.            xD(T1) = xD(T1) + Arr(x, 103)
  28.         ElseIf Arr(x, 103) <> "" Then
  29.            xD(T1) = xD(T1) + Arr(x, 103) + 1
  30.         End If
  31.         xD(T1 & 105) = xD(T1 & 105) + Arr(x, 105)
  32.     End If
  33. Next x
  34. T1 = "": k = 1
  35. For Each D In xD
  36.     For x = 2 To UBound(Arr, 1)
  37.         T2 = ""
  38.         For y = 1 To 51
  39.             T2 = T2 & Arr(x, y)
  40.             If Arr(x, y) = "" Then T2 = T2 & "-"
  41.         Next y
  42.         T4 = ""
  43.         For y = 52 To 102
  44.             T4 = T4 & Arr(x, y)
  45.             If Arr(x, y) = "" Then T4 = T4 & "-"
  46.         Next y
  47.         If T2 = T4 Then
  48.             T2 = T2 & T4 & Arr(x, 106)
  49.             T4 = ""
  50.             If D = T2 Then
  51.                 k = k + 1
  52.                 Arr(x, 103) = xD(D) - 1
  53.                 Arr(x, 105) = xD(D & 105)
  54.                 If Arr(x, 107) <> "" Or Arr(x, 109) <> "" _
  55.                 Or Arr(x, 115) <> "" Or Arr(x, 104) <> "" Then
  56.                      For y = 1 To UBound(Arr, 2)
  57.                          Arr(k, y) = Arr(x, y)
  58.                          If Arr(k, 103) = 0 Then Arr(k, 103) = ""
  59.                          If Arr(k, 105) = 0 Then Arr(k, 105) = ""
  60.                      Next y
  61.                 Exit For
  62.                 End If
  63.             End If
  64.         End If
  65.     Next x
  66. Next D
  67. T2 = "": Set xD = Nothing
  68. Sheets(2).Range("A1").Resize(k - 1, UBound(Arr, 2)) = ""
  69. Sheets(2).Range("A1").Resize(k - 1, UBound(Arr, 2)) = Arr
  70. Erase Arr
  71. Application.ScreenUpdating = True
  72. Sheets(2).Select
  73. Rows(2).Select
  74. ActiveWindow.FreezePanes = True
  75. Cells(Rows.Count, 106).End(xlUp).Select
  76. End Sub
½Æ»s¥N½X

TOP

¥»©«³Ì«á¥Ñ °a¤ªºµ ©ó 2020-10-31 12:18 ½s¿è

¦^´_ 41# wei9133

½Ð°Ý ³Ó²v ²z½×¤WÀ³¸Ó¬O   ³Ó²v = ³Ó³õ/(³Ó³õ+±Ñ§½)*100%   ¬O§_¬O³o¼Ë?
¦pªG +1  -1  ¦n¹³©Ç©Çªº
Cells(x, 116) = Format(Cells(x, 103) / (Cells(x, 103) + Cells(x, 105)), "###%")

TOP

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

¦^´_ 55# wei9133

§A¦³·s¼W ¤u§@ªí¶Ü?  ¥Î³o­Ó¸Õ¸Õ¬Ý  
§Ú¦³§â jcchiang«e½úªº¤]©ñ¶i¥h¤F  Sub ex5()  µ²ªG¤£¤Ó¤@¼Ë  
¦A¬Ý¬Ý§Ú­þ¸Ì¦³°ÝÃD¦b§i¶D§Ú ·PÁÂ

javascript:;

¹ï¾Ô²Î­p -1102_.rar (32.4 KB)

TOP

        ÀR«ä¦Û¦b : ¦¨¥\¬OÀuÂIªºµo´§¡A¥¢±Ñ¬O¯ÊÂIªº²Ö¿n¡C
ªð¦^¦Cªí ¤W¤@¥DÃD