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

[µo°Ý] EXCEL VBA 4­Ó§PÂ_°õ¦æ4¥¨¶°»P3«ö¶s

EXCEL VBA 3­Ó«ö¶sªº§PÂ_°Ê§@

§Ú©óÀɮתº¤u§@ªí1³]¤F3­Ó«ö¶s
¤À§O¬°±Ò°Ê¶s °±¤î¶s ºò«æ¶s

§@°Ê¬yµ{¹Ï §Úµe¦b¤u§@ªí2
¬yµ{¹Ï.rar (25.2 KB)
§@°Ê¤è¦¡
±Ò°Ê¶s:°õ¦æºñ¦â½u±øªº¬yµ{
¤@ª½­«½Æ°Ê§@ ª½¨ì«ö°±¤î¶s¤~·|°±¤î

°±¤î¶s: °õ¦æ¾ï¦â½u±ø¬yµ{
¦pªG°±¤î¦b1ªº¦ì¸m «h¥ß§Y¨ìEND(µ{¦¡µ²§ô)
¦pªG°±¤î¦b2ªº¦ì¸m «h¶]¾ï¦â¸ô½u ³Ì²×¨ìEND(¤]´N¬O¶]§¹1¦UCYCLE)

ºò«æ¶s:°õ¦æ¬õ¦â½u±ø¬yµ{
°¨¤W °õ¦æ¥¨¶°2

½Ð°Ý¦U¦ì¤j¤j
VB½X­n¦p¦ó¼g
Åý3­Ó«ö¶s ¦³¤W­zªº°Ê§@

TOP


´£¨Ñ¬yµ{¹Ïµ¹µLªk¤U¸üªº¤j¤j°Ñ¦Ò

TOP

¦^´_ 2# bqwangs
¬O³o¼Ë¶Ü?
  1. Const Sh = "¤u§@ªí1"
  2. Dim Msg As Boolean
  3. Sub Sub_Start()
  4.     Msg = True
  5.     With Sheets(Sh)
  6.         If .[C5] = 1 Then
  7.             ¥¨¶°1
  8.         ElseIf .[C5] = -1 Then
  9.             ¥¨¶°3
  10.         End If
  11.     End With
  12. End Sub
  13. Sub Sub_stop()
  14.      ¥¨¶°2
  15. End Sub
  16. Sub ¥¨¶°1()
  17.     With Sheets(Sh)
  18.         .Range("A8") = 0
  19.         Do While Msg
  20.            .Range("A8") = 1
  21.             DoEvents
  22.         Loop
  23.     End With
  24. End Sub
  25. Sub ¥¨¶°2()
  26.     Msg = False '
  27.     Sheets(Sh).Range("B8") = "0"
  28. End Sub
  29. Sub ¥¨¶°3()
  30.     With Sheets(Sh)
  31.         Do While Msg
  32.            .Range("C8") = -1
  33.             DoEvents
  34.         Loop
  35.     End With
  36. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

ª©¤j
§Ú°õ¦æ°_¨Ó©Ç©Çªº
¤£¬O§Ú­nªºµ²ªG
À³¸Ó¬O§Úªí¹Fªº·N«ä »¡ªº¤£¦n
§Ú¦A¦¸»¡©ú¤@¤U
·|¦³3­Ó«ö¶s(±Ò°Ê¶s.°±¤î¶s.ºò«æ¶s)

¤@.«ö¤U±Ò°Ê¶s
(1)·|ÀË´úC5Àx¦s®æ¬O§_¬° 1 ©Î -1
¬°1°õ¦æ¥¨¶°1
¬°-1°õ¦æ¥¨¶°3
(2)¦A¦¸ÀË´úC5Àx¦s®æ¬O§_¬° 0
¬°0°õ¦æ¥¨¶°2
·|¤@ª½´`Àô¤W­z°Ê§@(°£«D«ö¤U°±¤î¶s©Îºò«æ¶s ¤~·|°±¤î)

¤G.«ö¤U°±¤î¶s
(1)¦pªGC5Àx¦s®æ¬°1 ©Î -1¡A·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î(¤]´N¬O·|°õ¦æ§¹¥¨¶°2)
(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)

¤T.«ö¤Uºò«æ¶s
(1)¦pªGC5Àx¦s®æ¬° 1 ©Î-1 ¡A°¨¤W·|°õ¦æ¥¨¶°2¡A¥ß§Y°±¤î
(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)(»P°±¤î¶s²Ä2±ø±Ô­z¤@¼Ë)

======================================
C5Àx¦s®æ ª©¤j¥i¤â°Ê¿é¤J1  ©Î    0   ©Î    -1
·|¦bA6-C6Àx¦s®æÅã¥Ü¼Æ¦r(¤]´N¬O§Ú­nªºª¬ºA©Î¿O¸¹)
Sub Macro1()
'' Macro1 Macro
    Range("A6").Select
    ActiveCell.FormulaR1C1 = "1"
    Range("B6").Select
    Selection.ClearContents
End Sub

Sub Macro2()
' Macro2 Macro
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "0"
    Range("A6").Select
    Selection.ClearContents
    Range("C6").Select
    Selection.ClearContents
End Sub

Sub Macro3()
' Macro3 Macro
    Range("C6").Select
    ActiveCell.FormulaR1C1 = "-1"
    Range("B6").Select
    Selection.ClearContents
End Sub

TOP

¥»©«³Ì«á¥Ñ bqwangs ©ó 2014-1-30 10:54 ½s¿è
ª©¤j
§Ú°õ¦æ°_¨Ó©Ç©Çªº
¤£¬O§Ú­nªºµ²ªG
À³¸Ó¬O§Úªí¹Fªº·N«ä »¡ªº¤£¦n
§Ú¦A¦¸»¡©ú¤@¤U
·|¦³3­Ó«ö¶s(±Ò°Ê ...
bqwangs µoªí©ó 2014-1-22 17:32



GBKEEª©¤j
©Î
¨ä¥L¤j¤j
¯àÀ°§Ú¸ÑºÃ¤@¤U??
«ü¾É¤@¤U

TOP

¦^´_ 5# bqwangs
  1. '³o¨Çµ{§Ç³]¦b SHEET1[¬¡­¶Ã¯ªºª«¥ó¼Ò²Õ]
  2. Option Explicit
  3. Dim Msg As Boolean
  4. Sub ±Ò°Ê¶s()
  5.     If Msg = True Then Exit Sub                        '°±¤îµ{¦¡ªº¹B¦æ
  6.     If [C5] = 1 Then ¥¨¶°1                          '¬°1°õ¦æ¥¨¶°1
  7.     If [C5] = -1 Then ¥¨¶°3                         '¬°1°õ¦æ¥¨¶°3
  8.     If [C5] = 0 Then ¥¨¶°2                          '¬°1°õ¦æ¥¨¶°2
  9.     Application.OnTime Time + #12:00:01 AM#, "SHEET1.±Ò°Ê¶s" '¶¡¹j¤@¬í°õ¦æ ±Ò°Ê¶s
  10.      'Application.Time [®É°õ¦æªº®É¶¡],[°õ¦æªºµ{§Ç]
  11.      '°õ¦æªºµ{§Ç¬O SHEET1[¬¡­¶Ã¯ªºª«¥ó¼Ò²Õ],¤ºªºµ{§Ç­n«ü©úª«¥ó¼Ò²Õªº¦WºÙ
  12. End Sub
  13. Sub °±¤î¶s()
  14.     Do While [C5] <> 0  '·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î
  15.         DoEvents
  16.     Loop
  17.     Msg = True   '°±¤î¦A«×°õ¦æ ±Ò°Ê¶s
  18.     ¥¨¶°2
  19.     End
  20.     '(1)¦pªGC5Àx¦s®æ¬°1 ©Î -1¡A·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î(¤]´N¬O·|°õ¦æ§¹¥¨¶°2)
  21.     '(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)
  22.     'Âk¯Ç(1)(2)->°õ¦æ¥¨¶°2
  23. End Sub
  24. Sub ºò«æ¶s()
  25.     Msg = True   '°±¤î¦A«×°õ¦æ ±Ò°Ê¶s
  26.     ¥¨¶°2
  27.     End
  28.     '(1)¦pªGC5Àx¦s®æ¬° 1 ©Î-1 ¡A°¨¤W·|°õ¦æ¥¨¶°2¡A¥ß§Y°±¤î
  29.     '(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°2)(»P°±¤î¶s²Ä2±ø±Ô­z¤@¼Ë)
  30.     'Âk¯Ç(1)(2)->°õ¦æ¥¨¶°2
  31. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ bqwangs ©ó 2014-2-7 15:45 ½s¿è

ª©¥D
©³¤U³o¤@¦æ ¬O¨C¬íÄÁ¶]¤@¦¸±Ò°Ê¶s
¨º§Ú¦pªGC5ªº°T¸¹¬°(1 ©Î-1 ©Î 0) ¦³¥i¯à¦s¦b1¬í 1¤À 1¤p®É
¥L¤£¬O·|°õ¦æ 1¦¸ 60¦¸ 3600¦¸??

§Ú­nªº¬O C5ªº°T¸¹¬°(1 ©Î-1 ©Î 0)¤£ºÞ¦s¦b¦h¤[®É¶¡
³£¥u·|¶]1¦¸ ª½¨ì°T¸¹§ïÅÜ(¨Ò¦p 1->0 ©Î0->-1©Î -1>0 ©Î 0->1 )
¤~·|°µ ¤U¤@­Ó°Ê§@
  1. Application.OnTime Time + #12:00:01 AM#, "SHEET1.±Ò°Ê¶s" '¶¡¹j¤@¬í°õ¦æ ±Ò°Ê¶s
½Æ»s¥N½X
§Ú­nªº¬O(°±¤î¶s ºò«æ¶s)
·|°±¤î ¦ý¤£·|¦A«×°õ¦æ±Ò°Ê¶s
  1. Msg = True   '°±¤î¦A«×°õ¦æ ±Ò°Ê¶s
½Æ»s¥N½X
¨º­n¦p¦ó§ï??

TOP

[µo°Ý] EXCEL VBA 4­Ó§PÂ_°õ¦æ4¥¨¶°»P3«ö¶s

¥»©«³Ì«á¥Ñ bqwangs ©ó 2014-4-8 18:01 ½s¿è

¦³3­Ó«ö¶s(±Ò°Ê¶s.°±¤î¶s.ºò«æ¶s)
°T¸¹ÀË´úÄæ¦ì
§Ú³]©w¬°C5Àx¦s®æ

¤@.«ö¤U±Ò°Ê¶s
·|ÀË´úC5Àx¦s®æ
C5Àx¦s®æ    ¥Ñ0Åܬ°1°õ¦æ¥¨¶°A
C5Àx¦s®æ    ¥Ñ1Åܬ°0°õ¦æ¥¨¶°B
C5Àx¦s®æ    ¥Ñ0Åܬ°-1°õ¦æ¥¨¶°C
C5Àx¦s®æ    ¥Ñ-1Åܬ°0°õ¦æ¥¨¶°D

·|¤@ª½´`Àô¤W­z°Ê§@(°£«D«ö¤U°±¤î¶s©Îºò«æ¶s ¤~·|°±¤î)

¤G.«ö¤U°±¤î¶s
(1)¦pªGC5Àx¦s®æ¬°1 ©Î -1¡A·|µ¥¨ìC5Àx¦s®æ¬° 0 ¤~°±¤î{¤]´N¬O·|°õ¦æ§¹¥¨¶°B(C5Àx¦s®æ1ÅÜ0)©Î¥¨¶°D(C5Àx¦s®æ-1ÅÜ0)}
(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°B©Î¥¨¶°D)

¤T.«ö¤Uºò«æ¶s
(1)¦pªGC5Àx¦s®æ¬° 1 ©Î-1 ¡A·|°¨¤W°õ¦æ¥¨¶°B(C5Àx¦s®æ1ÅÜ0)©Î¥¨¶°D(C5Àx¦s®æ-1ÅÜ0)¡Aµ{¦¡¥ß§Y°±¤î
(2)¦pªGC5Àx¦s®æ¬°0¡Aª½±µ°±¤î(¤£·|°õ¦æ¥¨¶°B©Î¥¨¶°D)(»P°±¤î¶s²Ä2±ø±Ô­z¤@¼Ë)

GBKEE ª©¤j
²{¦b³o­Ó·§©À
½Ð±Ð­n¦p¦ó¼gVB½X

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-4-11 07:45 ½s¿è

¦^´_ 9# bqwangs
¬O³o¼Ë¶Ü?
¤u§@ªí¼Ò²Õ¤Wªºµ{¦¡½X
  1. Dim Msg(1 To 3) As Boolean, C_5 As Integer, Rng As Range
  2. Private Sub Worksheet_Calculate()
  3.     '2 ¿ï 1 :*** ¦p C5 ¬°¤½¦¡ ¥Î¦¹­«ºâ¨Æ¥ó(¤u§@ªí¼Ò²Õªº¹w³]¨Æ¥óµ{§Ç)
  4.     If Not Msg(1) Then
  5.         MsgBox "©|¥¼ «ö¤U±Ò°Ê¯Ã"
  6.     ElseIf Rng <> C_5 Then
  7.         Ex
  8.     End If
  9. End Sub
  10. Private Sub Worksheet_Change(ByVal Target As Range)
  11.     '2 ¿ï 1 :*** ¦p¬Oª½±µ¦bC5¤W§ïÅÜ­È ¥Î¦¹¤u§@ªí¤WÀx¦s®æ¦³§ïÅܨƥó(¤u§@ªí¼Ò²Õªº¹w³]¨Æ¥óµ{§Ç)
  12.     If Not Msg(1) Then
  13.         MsgBox "©|¥¼ «ö¤U±Ò°Ê¯Ã"
  14.     ElseIf Target.Address = "$C$5" Then
  15.         Ex
  16.     End If
  17. End Sub
  18. Private Sub ±Ò°Ê¶s()
  19.     Msg(1) = True
  20.     Set Rng = [C5]
  21.     C_5 = [C5]
  22. End Sub
  23. Private Sub °±¤î¶s()
  24.     Msg(2) = True
  25. End Sub
  26. Private Sub ºò«æ¶s()
  27.     Msg(3) = True
  28. End Sub
  29. Private Sub Ex()
  30.     If Msg(1) And Not Msg(2) And Not Msg(3) Then '±Ò°Ê¶s
  31.         Select Case C_5         '¥ý«eC5ªº­È
  32.             Case 0              'C_5 = 0
  33.                 If Rng = 1 Then 'C5 Åܰʫ᪺­È
  34.                      ¥¨¶°A
  35.                 ElseIf Rng = -1 Then
  36.                     ¥¨¶°C
  37.                 End If
  38.             Case 1              'C_5 = 1
  39.                 If Rng = 0 Then ¥¨¶°B
  40.             Case -1             'C_5 = -1
  41.                 If Rng = 0 Then ¥¨¶°D
  42.         End Select
  43.     ElseIf Msg(2) And Not Msg(3) Then '°±¤î¶s
  44.            If Rng = 0 Then End   'µ{¦¡°±¤î
  45.            Select Case Rng
  46.             Case 1
  47.                 ¥¨¶°B
  48.             Case -1
  49.                 ¥¨¶°D
  50.         End Select
  51.     ElseIf Msg(3) Then          '°±¤î¶s
  52.          If Rng = 0 Then End    'µ{¦¡°±¤î
  53.            Select Case Rng
  54.             Case 1
  55.                 ¥¨¶°B
  56.             Case -1
  57.                 ¥¨¶°D
  58.         End Select
  59.         End                     'µ{¦¡°±¤î
  60.     End If
  61.     C_5 = Rng                   '¬ö¿ýC5ªº­×§ï
  62. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : §Ú­Ì³Ì¤jªº¼Ä¤H¤£¬O§O¤H¡D¥i¯à¬O¦Û¤v¡C
ªð¦^¦Cªí ¤W¤@¥DÃD