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

Àx¦s¤£·|¦Û°Ê°±¤î¡A¸Ó«ç»ò§ï¡H

¥»©«³Ì«á¥Ñ stillfish00 ©ó 2013-8-6 11:35 ½s¿è

¦^´_ 3# ahsiek
¸ß°Ýªº°ÝÃD¦p¤U¡G
1.        AA(¤u§@ªí)¶}©l«áµLªk¦Û°Ê°±¤î¡A§Ú³]©w¦bROW33«á´N°±¤îÀx¦s
µ²ªG¡A¦bROW33¬O°±¤F¡A¦ý¥¦´N¶]¨ìROW2¡B3¡A´N¦b¨º¸ÌÄ~Äò§@°Ê§@¡C
³o¬O§Ú­þ¸Ì¼g¿ù¤F¶Ü¡H
­º¥ý§A¥Î³o¨ú³Ì«á¤@¦æªº¦æ¸¹
endCol = ¤u§@ªí29.Cells(33, 1).End(xlUp).Row
End(xlUp)¬Û·í©ó«ö END+¦V¤WÁä¡A·íA1~A33³£¦³­È®É¡A³o¦æ¨ú¨ìªº¬O1

¦A¨Ó§A¥Î

   If ActiveCell.Row > 33 Then End       '­­¨îÁ`¦C¼Æ
    If ActiveCell.Column = 30 Then End       '¤¤³~¤¤¤î   

¦ý¬Oµ{¦¡¤¤¹ê»ÚActiveCell«o¤@ª½¬O©T©w¦P¤@®æ¡A·íµM¤£·|²×¤î
¦Ó¥B¤Á´«¤u§@ªíActiveCell¤]·|ÅÜ...........


2.        BB(¤u§@ªí)¤]¬O¦p¦¹¡A³o¨â­Ó¤u§@ªíªº¿ý»s¬O¤@¼Ëªº¡C©Ò¥H¤]¬O¤£·|¦Û°Ê°±¤U¨Ó¡C
3.        AA(¤u§@ªí)¡A¤@¥¹«ö¤U¶}©l°Ê§@¡A­Y§Ú¦A¥hBB(¤u§@ªí)«ö¤U¥ô·NÁä¡A«hAA(¤u§@ªí)©MBB(¤u§@ªí)³£¤£·|°Ê¤F¡C
4.        AA(¤u§@ªí)¡A­Y«ö¤U²×¤îÁä¡Aµ²ªG³sBB(¤u§@ªí)¤]¸òµÛ¤£·|°Ê¤F¡C

°ò¥»¤W§Ú·|­«¼g¦p¤U¡A§A¥i¥H°Ñ¦Ò¬Ý¬Ý¡G
  1. Private gbStop1 As Boolean
  2. Private gbStop2 As Boolean

  3. Sub ButtonStart1()  'AA¤u§@ªí¶}©l«ö¶s
  4.   gbStop1 = False
  5.   With ActiveSheet
  6.     .UsedRange.Offset(3).ClearContents
  7.     SetTimer1 .Name
  8.   End With
  9. End Sub
  10. Sub ButtonStop1()   'AA¤u§@ªí°±¤î«ö¶s
  11.   gbStop1 = True
  12. End Sub
  13. Sub ButtonStart2()  'BB¤u§@ªí¶}©l«ö¶s
  14.   gbStop2 = False
  15.   With ActiveSheet
  16.     .UsedRange.Offset(3).ClearContents
  17.     SetTimer2 .Name
  18.   End With
  19. End Sub
  20. Sub ButtonStop2()   'BB¤u§@ªí°±¤î«ö¶s
  21.   gbStop2 = True
  22. End Sub

  23. '±N¤£¦Pªíªº±Æµ{³¡¤À/­­¨î¦æ¼Æ/¤ÀÂ÷¥X¨Ó
  24. Sub SetTimer1(sSheetName As String)
  25.   Const MAX_ROW = 34
  26.   '¥¼¹F­­¨î¦æ¼Æ¥B¨S«ö°±¤î¶s«h±Æµ{1¬í«á¦A«×°õ¦æ
  27.   If mainFunc(sSheetName) < MAX_ROW And Not gbStop1 Then Application.OnTime Now + TimeValue("00:00:01"), "'SetTimer1 """ & sSheetName & """'"
  28. End Sub

  29. Sub SetTimer2(sSheetName As String)
  30.   Const MAX_ROW = 270
  31.   If mainFunc(sSheetName) < MAX_ROW And Not gbStop2 Then Application.OnTime Now + TimeValue("00:00:01"), "'SetTimer2 """ & sSheetName & """'"
  32. End Sub

  33. Function mainFunc(sSheetName As String) As Long
  34.   Dim i As Long
  35.   
  36.   With Sheets(sSheetName)
  37.     i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

  38.     '...°O¿ýlog
  39.     .Cells(i, "A") = Format(Time, "Hh:Mm:Ss")
  40.     .Cells(i, "J").Resize(, 8).Value = .Cells(3, "B").Resize(, 8).Value
  41.   End With
  42.   
  43.   mainFunc = i  '¦^¶Ç·í«e¦C¼Æ
  44. End Function
½Æ»s¥N½X

TOP

¦^´_ 9# ahsiek
¨ºSetTimer2¤¤§ï¬°  If mainFunc2(sSheetName)
¥t·s¼W:
  1. Function mainFunc2(sSheetName As String) As Long
  2.   Dim i As Long
  3.   
  4.   With Sheets(sSheetName)
  5.     i = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

  6.     '...°O¿ýlog
  7.     .Cells(i, "A") = Format(Time, "Hh:Mm:Ss")
  8.     .Cells(i, "E").Resize(, 3).Value = .Cells(3, "B").Resize(, 3).Value
  9.   End With
  10.   
  11.   mainFunc2 = i  '¦^¶Ç·í«e¦C¼Æ
  12. End Function
½Æ»s¥N½X

TOP

¦^´_ 13# ahsiek
©êºp¤F¡A§Ú¤]¤£¾å±oDDE¬O§_·|/¦p¦ó¼vÅT©Î¨ú®øExcelªº³¡¤À¥\¯à¡A
¤]¦³¥i¯à¬O»PExcelÀ³¥Îµ{¦¡¸ê·½¤À°t°ÝÃD¡A³o¤è­±¨S¦³¬ã¨s¹L¡A
¤âÃä¤]¨S¬ÛÃö¤u¨ã¥i´ú¸Õ¡A³o°ÝÃD¥i¯à­n½Ð±Ð¨ä¥Lª©¤Í¬O§_¯à¸Ñ´b¤F¡C

¦ý¤@¯ë±`¨£ªº¬OÂǥѤu§@ªíªºCalculate¨Æ¥ó¨Ó°O¿ýDDEªº­È¡Aª©¤W¤]¦³Ãþ¦ü°Q½×¥i°Ñ¦Ò¬Ý¬Ý¡C

TOP

¦^´_ 16# ahsiek
§Ú«Ü½T©wF3 & G3ªº®æ¤l³£¬O¦³¼Æ­Èªº¡A¦ÓL4 & M4¬O½Æ»sF3& G3ªº¼Æ­È¡A¬°¤°»òÁÙ·|¥X²{#DIV/0!©O¡H

§Ú¤]ı±o¤£·|¦³³o±¡§Î¡A§A¬O¦p¦ó½T©w"·í¤U"ªºF3 & G3ªº®æ¤l³£¬O¦³¼Æ­Èªº?
  1. ­Y¯uªº¬O¦]¬°F3&G3ªº¤½¦¡¡A¦Ó¾É­PL4&M4¥X²{#DIV/0!ªº¸Ü¡A¦³¤°»ò¤èªk¥i¥HÅýL4&M4³æ¯ÂÀx¦s¼Æ­È´N¦n©O¡H
½Æ»s¥N½X
¤Ï¹L¨Ó°Ý¡A­YF3&G3´N¬O#DIV/0!¡A§A­nL4&M4Àx¦s¤°»ò¼Æ­È?

TOP

¦^´_ 22# ahsiek
¦]¬°­ì¥»code¤¤stopªº¾÷¨î¡A¤£¬O¥ß§Y°±¤îªº¡A¦Ó¬O¤U¦¸±Æµ{ªº®É¶¡¨ì¤F¤~¥h§PÂ_¨ì¸ÓÅܼơA¤£Åý¥¦¦³¦A¤U¤@¦¸ªº±Æµ{¡C
©Ò¥H­ì¥»³]1¬í¡A¥u­n«ö°±¤î«áªº¤@¬í¤º¤£¦A­«·s¶}©l´N¤£·|¦³°ÝÃD¡A¦Ó²{¦b®É¶¡©Ôªøªº¸Ü´N¦³°ÝÃD¤F¡C¡C¡C

¥i¥H°Ñ¦Ò­×§ï¦p¤U¬Ý¬Ý¡AmainFunc() ¤£ÅÜ¡G
  1. Private gNextRunTime1 As Date
  2. Private gbIsRunning1 As Boolean

  3. Sub ButtonStart1()  '¤u§@ªí¶}©l«ö¶s
  4.   '¨¾¤î¦h¦¸±Ò°Ê
  5.   If gbIsRunning1 = True Then
  6.     If MsgBox("¤w¦³¦s¦bªº±Æµ{:" & gNextRunTime1 & "¡A¬O§_¨ú®ø¸Ó±Æµ{¡A­«·s¬ö¿ý?", vbOKCancel) = vbOK Then
  7.       ButtonStop1
  8.     Else
  9.       Exit Sub
  10.     End If
  11.   End If
  12.   
  13.   With ActiveSheet
  14.     .Range("A4:G270").ClearContents
  15.     gbIsRunning1 = True
  16.     SetTimer1 .Name
  17.   End With
  18. End Sub

  19. Sub ButtonStop1()   '¤u§@ªí°±¤î«ö¶s
  20.   gbIsRunning1 = False
  21.   
  22.   On Error Resume Next
  23.   '¨ú®ø¤U¦¸°õ¦æ®É¶¡
  24.   Application.OnTime gNextRunTime1, "'SetTimer1 """ & ActiveSheet.Name & """'", , False
  25.   On Error GoTo 0
  26. End Sub

  27. Sub SetTimer1(sSheetName As String)
  28.   Const MAX_ROW = 270
  29.   
  30.   gNextRunTime1 = Now + TimeValue("00:00:10")
  31.   Application.OnTime gNextRunTime1, "'SetTimer1 """ & sSheetName & """'"
  32.   
  33.   If mainFunc(sSheetName) >= MAX_ROW Then ButtonStop1 '°õ¦æ¨Ã¦^¶Çrow
  34. End Sub
½Æ»s¥N½X

TOP

¦^´_ 27# ahsiek
®Ú¾ÚApplication.OnTime ¡A¨ä°Ñ¼ÆLatestTime ªº»¡©ú¡G
  1. LatestTime ¿ï¥Î Variant

  2. ¥i¥H¶}©l°õ¦æµ{§Çªº³Ì±ß®É¶¡¡C¨Ò¦p¡A°²³] LatestTime ³]¬° EarliestTime + 30¡A·í®É¶¡¨ì¤F EarliestTime ®É¡A¦pªG¥Ñ©ó¨ä¥Lµ{§Ç¥¿¦b°õ¦æ¤¤¦Ó¨Ï Microsoft Excel ¤£³B©ó [´Nºü]¡B[½Æ»s]¡B[°Å¤U] ©Î [´M§ä] ¼Ò¦¡¡A«h Microsoft Excel ·|µ¥«Ý 30 ¬í¥H§¹¦¨²Ä¤@­Óµ{§Ç¡C¦pªG 30 ¬í¤º Microsoft Excel µLªk¦^¨ì [´Nºü] ¼Ò¦¡¡A«h¤£·|°õ¦æ¦¹µ{§Ç¡C¦pªG¬Ù²¤¦¹¤Þ¼Æ¡AMicrosoft Excel ·|¤@ª½µ¥¨ì¥i¥H°õ¦æ¸Óµ{§Ç¬°¤î¡C
½Æ»s¥N½X
¥Ñ©ó¬Ù²¤¦¹¤Þ¼Æ¡AMicrosoft Excel ·|¤@ª½µ¥¨ì¥i¥H°õ¦æ¸Óµ{§Ç¬°¤î¡C
¤]³\¬O³o¼Ë¾É­P§A¬ö¿ý®É¶¡ªº°Ê§@©µ«á¡A¦Ó¦³§A»¡ªº"º|¤F´X¬í"ªºµ²ªG¡A³o¥i¯à¨S¿ìªk¸Ñ¨M¡C¡C¡C

¦ý§Ú·|«Øij§A¸Õ¸Õ¬Ý¡A¬ö¿ýªº¥¨¶°¥Î¤@­ÓExcelÀ³¥Îµ{¦¡±`¾n¡A¦pªG¦³¨ä¥LExcel ¤u§@»Ý­n³B²zªº¸Ü¡A
¥t¥~¶}¤@­ÓExcelÀ³¥Îµ{¦¡(±q¶}©l¥\¯àªí©Î±¶®|¶}±Òexcel¡A¤£­nª½±µÂùÀ»excelÀɮסA
¨Ï¤u§@ºÞ²z­û¥i¬Ý¨£¨â­ÓExcel.exe³B²zµ{§Ç)¡A¤]³\¯àÁקK¸ê·½½Ä¬ð°ÝÃD¡C

TOP

¦^´_ 29# ahsiek
³o¼Ë§Ú´NµL¯à¬°¤O¤F¡C¡C¡C

TOP

¦^´_ 32# ahsiek
­×§ï¤@¤U23¼Ó  ButtonStop1 ©M SetTimer1

Sub ButtonStop1(Optional sSheetName As String)   '¤u§@ªí°±¤î«ö¶s
  gbIsRunning1 = False
  
  On Error Resume Next
  '¨ú®ø¤U¦¸°õ¦æ®É¶¡
  Application.OnTime gNextRunTime1, "'SetTimer1 """ & IIf(sSheetName <> "", sSheetName, ActiveSheet.Name) & """'", , False
  On Error GoTo 0
End Sub


Sub SetTimer1(sSheetName As String)
  Const MAX_ROW = 270
  
  gNextRunTime1 = Now + TimeValue("00:00:10")
  Application.OnTime gNextRunTime1, "'SetTimer1 """ & sSheetName & """'"
  
  If mainFunc(sSheetName) >= MAX_ROW Then ButtonStop1 sSheetName '°õ¦æ¨Ã¦^¶Çrow
End Sub

TOP

¦^´_ 34# ahsiek
´N¹³¬õ¦r¼Ðªº¦a¤è¡A­×§ï¤§«e¨Ï¥ÎActiveSheet.Name
¬O·í«e¤u§@ªí¦WºÙ¡A¦]¬°ButtonStop1³Q©I¥s®É¥i¯à¦b§Oªºsheet
¡A§ï¦¨«ü©wªº¤u§@ªí¦Ó¤w

TOP

        ÀR«ä¦Û¦b : ¤@­Ó¤Hªº§Ö¼Ö¡D¤£¬O¦]¬°¥L¾Ö¦³±o¦h¡A¦Ó¬O¦]¬°¥L­p¸û±o¤Ö¡C
ªð¦^¦Cªí ¤W¤@¥DÃD