Scripting.DictionaryªºÀ³¥Î 02
- ©«¤l
- 1447
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1471
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2025-2-11
|
ÁÂÁ½׾Â,ÁÂÁ¦U¦ì«e½ú
«á¾ÇÂǦ¹©«½m²ß°}¦C»P¦r¨å,¾Ç²ß¤è®×¦p¤U,½Ð¦U¦ì«e½ú«ü±Ð
¸ê®Æªí:
µ²ªGªí°õ¦æ«e:
°õ¦æµ²ªG:
Option Explicit
Sub TEST_1()
Dim Brr, Crr, Z, A, i&, j%, R&, Y&, N&
Sheets("PL").UsedRange.ClearContents
Set Z = CreateObject("Scripting.Dictionary")
Brr = Range([Summary!E1], [Summary!A65536].End(3))
For i = 2 To UBound(Brr)
A = Replace(Brr(i, 5), "~", "-"): A = A & "-" & A
A = Split(A, "-")(0) & "-" & Split(A, "-")(1)
R = Abs(Evaluate(A))
For Y = 0 To R
If Z(Val(A) + Y) <> "" Then
MsgBox "½c¸¹«½Æ: " & Val(A) + Y & " ×¥¿«á¦A°õ¦æ!"
Exit Sub
End If
Z(Val(A) + Y) = i & "*0+" & Val(Brr(i, 3)) & "/" & (R + 1)
Next
Next
ReDim Crr(1 To Z.Count + 1, 1 To 6)
For Each A In Z.keys
If N = 0 Then
N = 1: Crr(N, 6) = "Remark"
For j = 1 To 5: Crr(N, j) = Brr(1, j): Next
End If
N = N + 1
Crr(N, 1) = Brr(Val(Z(A)), 1)
Crr(N, 2) = Brr(Val(Z(A)), 2)
Crr(N, 3) = Evaluate(Z(A))
Crr(N, 4) = 1
Crr(N, 5) = A
Crr(N, 6) = Brr(Val(Z(A)), 5)
Next
With [PL!A1].Resize(Z.Count + 1, 6)
.Value = Crr
.Sort KEY1:=.Item(5), Order1:=1, Header:=1
End With
Set Z = Nothing: Erase Brr, Crr
End Sub |
|
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y
|
|
|
|
|
- ©«¤l
- 1447
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1471
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2025-2-11
|
¥»©«³Ì«á¥Ñ Andy2483 ©ó 2023-7-6 14:06 ½s¿è
¦^´_ 8# mdr0465
ÁÂÁ mdr0465¦^´_,ÁÂÁ¤@°_¾Ç²ß
«á¾ÇºÉ¥i¯àªí¹F©Ò¾Çªº¤ß±o,¤ß±o¦p¤U:
A = Split(A, "-")(0) & "-" & Split(A, "-")(1)
'³o¸Ìªº(0)¬O«üA¦r¦ê¥H"-"²Å¸¹¤À³Î¦¨¬°¤@ºû°}¦C¯Á¤Þ¸¹
'¥HSplit()¤À³Î¦r¦ê«áªº¤@ºû°}¦C¯Á¤Þ¸¹±q0¶}©l
'Split()(0),Split()(1),Split()(2)...¨Ì¦¹Ãþ±À
'¦]¬°½c¸¹ ¦³³æ½c¸¹(6,7),©Î°Ï¶¡½c¸¹(2~5,9~10),©Ò¥H¥Î¦¹ªk¥i¤@¨Ö³B²z
'³o¤èªk¬O¾Ç²ß¦Û ã´£³¡ªL«e½ú«ü¾Éªº¤U¦C³sµ²©«,½Ð°Ñ¦Ò
http://forum.twbts.com/viewthrea ... mp;page=1#pid121027
Sub TEST_2()
Dim A$, B$
A = "7"
B = "9-10"
B = B & "-" & B
MsgBox B
B = Split(B, "-")(0) & "-" & Split(B, "-")(1)
MsgBox B
MsgBox Abs(Evaluate(B))
A = A & "-" & A
MsgBox A
A = Split(A, "-")(0) & "-" & Split(A, "-")(1)
MsgBox A
MsgBox Abs(Evaluate(A))
End Sub
'==================================
¸É¥R:
¦pªG±NA,BÅܼƳ]¬°³q¥Î«¬ÅܼÆ,´N¥i¥HÅý¦r¦ê»P¤@ºû°}¦C³£¥i¥H³Q¸Ë²±
Sub TEST_3()
Dim A, B
A = "7"
B = "9-10"
B = B & "-" & B
MsgBox B
B = Split(B, "-")
B = B(0) & "-" & B(1)
MsgBox B
MsgBox Abs(Evaluate(B))
A = A & "-" & A
MsgBox A
A = Split(A, "-")
A = A(0) & "-" & A(1)
MsgBox A
MsgBox Abs(Evaluate(A))
End Sub
¦Ü©ó«ç»ò¹B¥Î? «Øij¦h½m²ß¦UºØ½d¨Ò±¡¹Ò
«Øij«e½ú¦h¤W½×¾Âµoªí¬Ýªk.¤ß±o...°µ¥æ¬y,¹F¨ì °ª¤¤¥Íµ¥¯Å,¥i·j´M¤º¤å,¦³¶W¦hªº½d¨Òª¾ÃÑ¥i¾Ç²ß»P½m²ß
|
|
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y
|
|
|
|
|