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

¥[Åv¥­§¡¼ÆVBA

¦^´_ 2# 518587

¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, First_1 As String
  4.     Range("D:G") = ""
  5.     Set Rng = Range("b:b").Find(1, lookat:=xlWhole) 'BÄ椤´M§ä ¶g¤@.
  6.     First_1 = Rng.Address
  7.     Do
  8.         With Rng(1).Offset(, 1).Resize(7)
  9.             .Cells(1, 2) = Application.WorksheetFunction.Average(.Cells)
  10.             .Cells(1, 3) = "" '¥­§¡­È¦b´î±¼­ì¥»ªº¼Æºâ¥Xµ´¹ï¶ZÂ÷ ¤½¦¡??
  11.             .Cells(1, 4) = (Application.WorksheetFunction.Max(.Cells) + Application.WorksheetFunction.Min(.Cells)) - Application.WorksheetFunction.Average(.Cells)
  12.         End With
  13.         Set Rng = Range("B:B").FindNext(Rng(1)) '´M§ä¤U¤@­Ó¶g¤@
  14.     Loop Until First_1 = Rng(1).Address         '¤U¤@­Ó¶g¤@ªº¦ì¸m=²Ä¤@­Ó¶g¤@ªº¦ì¸m(¦^¨ì²Ä¤@­Ó¶g¤@ªº¦ì¸m)
  15. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-13 19:32 ½s¿è

¦^´_ 5# 518587
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng(1 To 2) As Range, i As Integer
  4.     Dim f(1 To 7), Xik(1 To 7)
  5.     Dim ii As Integer
  6.     On Error Resume Next   'µ{¦¡½X¦³¿ù»~®É Ä~Äò¤U¤@¦æµ{¦¡½X(¤£²z·|)
  7.     With ActiveSheet       '«ü©w¤u§@ªí
  8.         .Range("D:k") = ""
  9.         .Range("b:b").Cells.Replace 1, "=aaa", lookat:=xlWhole        '½d³ò¤¤ªºÀx¦s®æ­È = 1, ­×§ï¬°¤£¦s¦bªº¤½¦¡,³y¦¨¿ù»~­È
  10.         Set Rng(1) = .Range("b:b").SpecialCells(xlCellTypeFormulas, xlErrors)  '³]©wÅܼƬ°³o½d³ò¤¤¦³¿ù»~­Èªº¯S®íÀx¦s®æ
  11.         Rng(1).Value = 1    '¯S®íÀx¦s®æªº­È«ì´_ = 1
  12.     End With
  13.     With Rng(1)
  14.         For i = 1 To .Areas.Count        'Areas ÄÝ©Ê ¶Ç¦^ Areas ¶°¦X¡A¦¹¶°¦X¥Nªí¦h­«½d³ò¤¤ªº©Ò¦³½d³ò
  15.             With .Areas(i).Cells(1, 2).Resize(7)      '¤@¶g¦¸¼Æ¶q½d³ò
  16.                 '.Cells(1,2) 'DÄæ ** 1.¥ý­pºâ©P¤@¨ì©P¤Cªº¥­§¡¼Æ = AvgOld
  17.                 .Cells(1, 2) = Application.Average(.Cells)
  18.                 'AvgOld
  19. A:
  20.                 '.Cells(1,3) 'EÄæ ** 2.±N ­ì¥»¼Æ¶q ´î±¼AvgOld=Xik ¥[¤Wµ´¹ï­È(¥X²{¤C­Ó¼Æ)
  21.                 For ii = 1 To 7   '.Cells(ii, 1) CÄæ: ­ì¥»¼Æ¶q
  22.                     '.Cells(1,7) 'IÄæ ** 6.ck=(-(Dpk^2)/ln(Ri))       (¥X²{¤@­Ó¼Æ)
  23.                     .Cells(ii, 3) = Abs(.Cells(ii, 1) - .Cells(1, 2))
  24.                     'Xik
  25.                     Xik(ii) = .Cells(ii, 3)   '
  26.                 Next
  27.         
  28.                 '.Cells(1,4) 'FÄæ ** 3.§ä¥X¶g¤@¨ì©P¤C³Ì¤j­È´î±¼AvgOld=Dpk   (¥X²{¤@­Ó¼Æ)
  29.                 .Cells(1, 4) = Application.Max(.Cells) - .Cells(1, 2)
  30.                 'Dpk
  31.                
  32.                 '.Cells(1,5) 'GÄæ ** 4.§ä¥X¶g¤@¨ì©P¤C³Ì¤p­È´î±¼AvgOld=Dnk (µ´¹ï­È)  (¥X²{¤@­Ó¼Æ)
  33.                 .Cells(1, 5) = Abs(Application.Min(.Cells) - .Cells(1, 2))
  34.                 'Dnk
  35.                
  36.                 '.Cells(1,6) 'HÄæ ** 5.Dnk/Dpk=Ri   (¥X²{¤@­Ó¼Æ)
  37.                 .Cells(1, 6) = .Cells(1, 5) / .Cells(1, 4)
  38.                 'Ri
  39.             
  40.                 '*** ¨ì A578 ®É H578 = 1 Ln(.Cells(1, 6))=0
  41.                 '*** ¤À¥À=0 ¤£¥i°£ ªº¿ù»~  ***************
  42.                 '*** ±µ¤Uªº¼Æ¦r·|¦³¿ù»~    ***************
  43.                 '.Cells(1,7) 'IÄæ ** 6.ck=(-(Dpk^2)/ln(Ri))       (¥X²{¤@­Ó¼Æ)
  44.                 .Cells(1, 7) = -(.Cells(1, 4) ^ 2) / Application.Ln(.Cells(1, 6))
  45.                 'ck
  46.                
  47.                 '.Cells(1,8) 'JÄæ ** 7.f=exp(-(Xik^2)/ck)          (¥X²{¤C­Ó¼Æ)
  48.                 For ii = 1 To 7
  49.                     .Cells(ii, 8) = Application.Evaluate("Exp(" & -(Xik(ii) ^ 2) / .Cells(1, 7) & ")")
  50.                     'f
  51.                     'VBA ¤£¤ä´© ¤u§@ªí¨ç¼Æ Exp
  52.                     'Evaluate ¤èªk ±N Microsoft Excel ¦WºÙÂà´«¦¨ª«¥ó©ÎªÌ­È¡C
  53.                     f(ii) = .Cells(ii, 8)
  54.                 Next
  55.         
  56.                 '.Cells(1,9) KÄæ ** 8.W=f/fªº¥[Á`         (¥X²{¤C­Ó¼Æ)
  57.                 For ii = 1 To 7
  58.                     .Cells(ii, 9) = f(ii) / Application.Sum(f)
  59.                     'W
  60.                 Next
  61.                 '.Cells(1,10) LÄæ ** 9.AvgNew=SUMPRODUCT(W*­ì©l¼Æ¶q)    (¥X²{¤@­Ó¼Æ)
  62.                 Set Rng(2) = .Cells(1, 9).Resize(7)     'W ªº½d³ò
  63.                 .Cells(1, 10) = Application.SumProduct(Rng(2), .Cells)     'AvgNew
  64.                 '10.¦pªG AvgOld-AvgNew>0.1 (¥[¤Wµ´¹ï­È)ªº¸Ü ¡A·sªº¥­§¡­È´N¥²¶·¨ú¥Nªº¡AµM«á¦^¨ì²Ä¤G¨B­«½Æ­pºâ¨ì¤p©ó0.1
  65.                 'If Abs(.Cells(1, 2) - .Cells(1, 9)) > 0.1 Then GoTo A:  '¦^¨ì²Ä2¨BÆJ
  66.                 '*********?????????????????????
  67.                 'µM«á¦^¨ì²Ä¤G¨B­«½Æ­pºâ¨ì¤p©ó0.1
  68.                 '¦p¦ó­pºâ¨ì¤p©ó0.1??
  69.                 '*******************************
  70.             End With
  71.         Next
  72.     End With
  73. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 9# 518587

¨S¦³¥[ .
  1. If Abs(.Cells(1, 2) - .Cells(1, 10)) > 0.1 Then
  2.     .Cells(1, 11) = Abs(.Cells(1, 2) - .Cells(1, 10))
  3.     .Cells(1, 2) = Avg
  4.     GoTo A
  5. End If
½Æ»s¥N½X
°ÝDÄ椣¾AÀ³¸Ó¬OCells(X,4)¶Ü?!«ç»ò¬OCells(X,2)©O?!
  1. Set Rng(1) = .Range("b:b").SpecialCells(xlCellTypeFormulas, xlErrors)
  2.     With Rng(1) -> Range("b:b")¬° BÄæ
  3.         For i = 1 To .Areas.Count-> For i = 1 To Rng(1).Areas.Count
  4.            With .Areas(i).Cells(1, 2).Resize(7)   ->With Rng(1).Areas(i).Cells(1, 2).Resize(7)
  5.           ' ©Ò¥H    .Cells(X,1)  -> C Äæ
  6.         '©Ò¥H    .Cells(X,2)  -> D Äæ
½Æ»s¥N½X
«ç»ò¼Ë¤~¥i¥HÅý¨C­Ó¤u§@ªí³£¥i¥H°õ¦æ³o¬qµ{¦¡½X?!
  1.     Sub Ex()
  2.        With ActiveSheet   '(§@¥Î¤¤ªº¤u§@ªí)
  3.        '³o¸Ì¦³«ü©w¤u§@ªí¬°§@¥Î¤¤ªº¤u§@ªí,¨C±i¤u§@ªí¥i¥H¨Ï¥Îªº
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-14 06:24 ½s¿è

¦^´_ 12# 518587
­n»{ÃÑVBA ,µ{¦¡°Ïªº¥DÃD­n¦h¬Ý.

  1. '10.¦pªG AvgOld-AvgNew>0.1 (¥[¤Wµ´¹ï­È)ªº¸Ü ¡A·sªº¥­§¡­È´N¥²¶·¨ú¥Nªº¡AµM«á¦^¨ì²Ä¤G¨B­«½Æ­pºâ¨ì¤p©ó0.1
  2.                 If Abs(.Cells(1, 2) - .Cells(1, 10)) > 0.1 Then
  3.                     .Cells(1, 11) = Abs(.Cells(1, 2) - .Cells(1, 10))
  4.                     .Cells(1, 2) = Avg   'Avgªº¤½¦¡???
  5.                     GoTo A
  6.                 End If
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 16# 518587
6# ¤¤¦³µù¸Ñ
  1.                '*** ¨ì A578 ®É H578 = 1 Ln(.Cells(1, 6))=0

  2. 41.                '*** ¤À¥À=0 ¤£¥i°£ ªº¿ù»~  ***************

  3. 42.                '*** ±µ¤Uªº¼Æ¦r·|¦³¿ù»~    ***************
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 19# 518587
  1. .Cells(1, 11) = Abs(.Cells(1, 2) - .Cells(1, 10))
  2. Debug.Print .Cells(1, 11).Address & " : " & .Cells(1, 11)  '¥[¤W³o¦æ¬d¬Ý.Cells(1, 11)ªº­È
  3. GoTo A
½Æ»s¥N½X


Debug.Print ¹î¬Ý¨ì «e¬q¨ìM410 ¤@ª½¬O>0.1
¸õ¤£¥X If .Cells(1, 11) > 0.1 Then ªº§PÂ_
  1. $M$410 : 1.11185372875004
  2. $M$410 : 1.11185372875005
  3. $M$410 : 1.11185372875006
  4. $M$410 : 1.11185372875006
  5. $M$410 : 1.11185372875006
  6. $M$410 : 1.11185372875006
  7. $M$410 : 1.11185372875004
  8. $M$410 : 1.11185372875005
  9. $M$410 : 1.11185372875006
  10. $M$410 : 1.11185372875006
  11. $M$410 : 1.11185372875006
  12. $M$410 : 1.11185372875006
  13. $M$410 : 1.11185372875004
  14. $M$410 : 1.11185372875005
  15. $M$410 : 1.11185372875006
  16. $M$410 : 1.11185372875006
  17. $M$410 : 1.11185372875006
  18. $M$410 : 1.11185372875006
  19. $M$410 : 1.11185372875004
  20. $M$410 : 1.11185372875005
  21. $M$410 : 1.11185372875006
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 21# 518587
Ln(1)=0ªº¨ºùØ¡A¬°¤°»òÁÙ¥i¥Hºâ¥X­È?!

µ{¦¡½X¶}ÀY¦³   On Error Resume Next   'µ{¦¡½X¦³¿ù»~®É Ä~Äò¤U¤@¦æµ{¦¡½X(¤£²z·|)

±µ¤U¦³µù¸Ñ  '*** ¨ì A578 ®É H578 = 1 Ln(.Cells(1, 6))=0
                '*** ¤À¥À=0 ¤£¥i°£ ªº¿ù»~  ***************
                '*** ±µ¤Uªº¼Æ¦r·|¦³¿ù»~    ***************
                '.Cells(1,7) 'IÄæ ** 6.ck=(-(Dpk^2)/ln(Ri))       (¥X²{¤@­Ó¼Æ)
                .Cells(1, 7) = -(.Cells(1, 4) ^ 2) / Application.Ln(.Cells(1, 6))
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ¡i®É¶¡µLªk¾B¾×¡j©È®É¶¡®ø³u¡Aªá¤F³\¦h¤ß¦å¡A·QºÉ¦U¦¡¤èªk­n¾B¾×®É¶¡¡Aµ²ªG¬O¡G®ö¶O¤F§ó¦h®É¶¡¡A¥B¤@µL©Ò¦¨¡I
ªð¦^¦Cªí ¤W¤@¥DÃD