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

»ù®æ¬ö¿ýªº»yªk¦³¼g¿ù¶Ü??

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-10 14:28 ½s¿è

¦^´_ 37# ÂŤÑÄR¦À
  1. Option Explicit
  2. Private Sub Workbook_Open()
  3.     Dim xRng As Range, First_Aaddres  As String, xRng_Name As String
  4.     Application.Calculation = xlCalculationAutomatic
  5.     With Sheets("RTD")
  6.         Set xRng = .Rows(2).Cells.Find("TotalVolume", LookIn:=xlFormulas)
  7.         If Not xRng Is Nothing Then
  8.             First_Aaddres = xRng.Address
  9.             Do
  10.                  xRng_Name = Split(xRng.Formula, "'")(1)
  11.                  xRng_Name = "TotalVolume" & Split(xRng_Name, ".")(0)
  12.                 .Names.Add xRng_Name, xRng  ''¦WºÙ©w¸q:©Ò¦³Á`¶qªºDee¤½¦¡ªºÀx¦s®æ
  13.                 Set xRng = .Rows(2).Cells.FindNext(xRng)
  14.             Loop Until xRng.Address = First_Aaddres
  15.         End If
  16.     End With
  17. End Sub
½Æ»s¥N½X
­«ºâ¨Æ¥ó¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.         Dim Rng As Range, E As Variant
  4.         On Error Resume Next ' Àɮ׶}±Ò®É DEE¶Ç¦^¿ù»~­È
  5.         Set Rng = UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
  6.         If Not Rng Is Nothing Then Exit Sub
  7.         On Error GoTo 0 '¶}½L¤£¦A³B²zµ{¦¡½Xªº¿ù»~
  8.        If Time < #9:00:00 AM# Or Time > #1:31:00 PM# Then Exit Sub '«DÀç·~®É¶¡
  9.         For Each E In Me.Names
  10.             If E.Name Like "*TotalVolume*" Then   'Á`¶qªº¦WºÙ
  11.                 If Range(E.Name) > 0 Then
  12.                     With Cells(Rows.Count, Range(E.Name).Column).End(xlUp)  ''Á`¶q¦WºÙ©Ò¦bªº³Ì©³¦C©¹¤W¨ì¦³¸ê®ÆªºÀx¦s®æ
  13.                             If .Row = 2 Or .Row > 2 And .Value <> Range(E.Name).Value Then
  14.                                 .Offset(1).Cells(1, -2).Resize(, 4) = Range(E.Name).Cells(, -2).Resize(, 4).Value
  15.                             End If
  16.                     End With
  17.                 End If
  18.             End If
  19.         Next
  20. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-9 08:46 ½s¿è

¦^´_ 41# ÂŤÑÄR¦À
37©«ªºÀÉ®×
ThisWorkbook
  1. Private Sub Workbook_Open()
½Æ»s¥N½X
Sheet
  1. Private Sub Worksheet_Calculate()
½Æ»s¥N½X
¬O°Ú,¿Ã¹õ¬Ý¤[²´·ú·|µh,¤W½uªº®É¶¡»Ý±±¨î¤@¤U.
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-9 09:14 ½s¿è

¦^´_ 44# ÂŤÑÄR¦À
¤µ¤Ñ¨SÀç·~,½Ð°Ý´ú¸Õ¤è¦¡

¦A¸ÑÄÀ¤@¤U,µ{¦¡ªºÅÞ¿è
Àɮ׶}±Ò®É ©w¸q¤FSheets("RTD")©Ò¦³Á`¶qDee¤½¦¡ªºÀx¦s®æ
  1. Private Sub Workbook_Open()
  2. With Sheets("RTD")
  3. '''
  4. .Names.Add xRng_Name, xRng  ''¦WºÙ©w¸q:Sheets("RTD")©Ò¦³¦UªÑÁ`¶qDee¤½¦¡ªºÀx¦s®æ
  5. '''
½Æ»s¥N½X
Sheets("RTD")¤u§@ªí¤W¥ô¦ó¦³¤½¦¡Àx¦s®æ­È¦³ÅÜ°Ê,±Ò°ÊSheets("RTD")ªºWorksheet_Calculate¨Æ¥ó
  1. Private Sub Worksheet_Calculate()
  2.         Dim Rng As Range, E As Variant
  3.         On Error Resume Next ' Àɮ׶}±Ò®É DEE¶Ç¦^¿ù»~­È
  4.         Set Rng = UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
  5.         If Not Rng Is Nothing Then Exit Sub
  6.         On Error GoTo 0 '¶}½L¤£¦A³B²zµ{¦¡½Xªº¿ù»~
  7.         For Each E In Me.Names
  8.             If E.Name Like "*TotalVolume*" Then   '¦UªÑÁ`¶qªº¦WºÙ
  9.                 If Range(E.Name) > 0 Then                 'Á`¶q>0
  10.                     With Cells(Rows.Count, Range(E.Name).Column).End(xlUp)  ''Á`¶q¦WºÙ©Ò¦bªº³Ì©³¦C©¹¤W¨ì¦³¸ê®ÆªºÀx¦s®æ
  11.                             If .Row = 2 Or .Row > 2 And .Value <> Range(E.Name).Value Then '(¦UªÑÁ`¶q¦³ÅÜ°Ê)
  12.                                 '******************************************
  13.                                 '³Ì©³¦C©¹¤W¦³¸ê®ÆªºÀx¦s®æ<>'Á`¶qªº­È
  14.                                 .Offset(1).Cells(1, -2).Resize(, 4) = Range(E.Name).Cells(, -2).Resize(, 4).Value
  15.                                 '******************************************
  16.                             End If
  17.                     End With
  18.                 End If
  19.             End If
  20.         Next
  21. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-9 10:05 ½s¿è

¦^´_ 51# ÂŤÑÄR¦À
¶·¥ý§ï¬°¦Û°Ê­«ºâ
  1. Private Sub Workbook_Open()
  2.     Dim xRng As Range, First_Aaddres  As String, xRng_Name As String
  3.     Application.RTD.ThrottleInterval = 0
  4.     Application.Calculation = xlCalculationAutomatic  '¦Û°Ê­«ºâ
  5. With Sheets("RTD")
  6.         Set xRng = .Rows(2).Cells.Find("TotalVolume", LookIn:=xlFormulas)
  7.         If Not xRng Is Nothing Then
  8. '
  9. '
  10.    
½Æ»s¥N½X
  1. Sub Ex()
  2.     Dim i As Integer
  3.     With Sheets("RTD")
  4.         .Range("a" & Rows.Count) = "=a1"   '±Ò°Ê²Ä¤@¦¸ Worksheet_Calculate
  5.         i = 1
  6.         For i = 1 To i * 4 * 8 Step 2
  7.             With .Cells(Rows.Count, 4 * i).End(xlUp).Offset(1)
  8.                 .Value = Int((500 - 100 + 1) * Rnd + 100)
  9.                 'Á`¶q¦WºÙ©Ò¦bªº³Ì©³¦C©¹¤W¨ì¦³¸ê®ÆªºÀx¦s®æµ¹¶Ã¼Æ
  10.                 ''¦]¨SÀç·~DEE¤£·|ÅÜ°Ê,©Ò¥Hµ¹­Ó¶Ã¼Æ
  11.                 'µ¥¦PDEEÁ`¶q¦³ÅÜ°Ê
  12.             End With
  13.             .[a1] = i                  ' ¤½¦¡­È¦A«×ÅÜ°Ê±Ò°Ê Worksheet_Calculate
  14.         Next
  15.     End With
  16. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 62# ÂŤÑÄR¦À
¦³³]¬°¦Û°Ê­«ºâ¶Ü?
  1. Applicaion.Calculation = xlCalculationAutomatic  '¦Û°Ê­«ºâ
½Æ»s¥N½X
¤â°Ê¬O°õ¦æ©Òµ¹ªºExµ{¦¡¶Ü?
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 67# c_c_lai
DEE¤½¦¡­ÈªºÅÜ°Ê,Àx¦s®æ¤º¤½¦¡°Ñ·Ó¨ä¥L¤u§@ªí,­pºâ«á­Èªº§ïÅÜ.
¤£·|IJµo Private Sub Worksheet_Change(ByVal Target As Range)¨Æ¥óµ{¦¡

¦^´_ 64# ÂŤÑÄR¦À
¤â°Ê¬O§ï¦¨¥æ¶q,»Ý¬O (DEE¤½¦¡ ©Î Àx¦s®æ¤º¤½¦¡ ) ­Èªº§ïÅÜ
1 ½Ð½Æ»s39©«ªº Private Sub Workbook_Open() ¨ìThisWorkbook¼Ò²Õ«á°õ¦æ¤@¦¸
2 ½Ð½Æ»s39©«ªºPrivate Sub Worksheet_Calculate() ¨ìSheets("RTD") ¼Ò²Õ
3½Ð¦b Sheets("RTD")¤W¦³DEEÁ`¶q¤½¦¡ªº D2,H2,,, ¿é¤J¤½¦¡=¤u§@ªí2!A1
4½Ð¦b ¤u§@ªí2!A1¿é¤J>0ªº¥ô·N¼Æ­È
5¬Ý¬Ý Sheets("RTD")ªºÅÜ°Ê
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-9 19:05 ½s¿è

¦^´_ 70# c_c_lai
§Y²Ä¤T¦C¨CÄ椺®e¬° A3 (=A2)¡A B3 (=B2)¡A C3 (=C2)¡A. . . . .¦p¦¹«K¯àIJµo¨Æ¥ó¤F¡C

Ex.zip (6.7 KB)    ÁÙ¬O¤£¦æ...
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 72# c_c_lai
Worksheet_Calculate() ¬OµLªk§PÂ_­þ­ÓÀx¦s®æIJµoªº.
39 ©« ªºPrivate Sub Workbook_Open()
¤¤¦³.Names.Add xRng_Name, xRng  ''¦WºÙ©w¸q:©Ò¦³Á`¶qªºDee¤½¦¡ªºÀx¦s®æ
·íWorksheet_Calculate­«ºâ¨Æ¥ó°õ¦æ®É
  For Each E In Me.Names ¥h§PÂ_Á`¶q¦³ÅÜ°Ê,«h°O¿ý¤U¨Ó.

¦^´_ 75# ÂŤÑÄR¦À
³o´ú¸Õ¬O¥¿½Tªº,¨SÀç·~DEE¤£·|ÅÜ°Ê,Á`¶qªº¤U¤è¦C¦ì´ú¸Õµ¹­È,°²¸ËÁ`¶q¦³ÅÜ°Ê

·íWorksheet_Calculate­«ºâ¨Æ¥ó°õ¦æ®É
  For Each E In Me.Names  ¥h§PÂ_Á`¶q¦³ÅÜ°Ê,«h°O¿ý¤U¨Ó.

¬P´Á¤@Àç·~«e¥´¶}Àɮ׸ոլÝ
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 84# c_c_lai
39©«  ¸É¤W«DÀç·~®É¶¡¤£°õ¦æµ{¦¡
  1. Private Sub Worksheet_Calculate()
  2.         Dim Rng As Range, E As Variant
  3.         On Error Resume Next ' Àɮ׶}±Ò®É DEE¶Ç¦^¿ù»~­È
  4.         Set Rng = UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
  5.         If Not Rng Is Nothing Then Exit Sub
  6.         On Error GoTo 0 '¶}½L¤£¦A³B²zµ{¦¡½Xªº¿ù»~
  7.         If Time < #9:00:00 AM# Or Time > #1:31:00 PM# Then Exit Sub '«DÀç·~®É¶¡
  8.         For Each E In Me.Names
  9.             If E.Name Like "*TotalVolume*" Then   'Á`¶qªº¦WºÙ
  10.                 If Range(E.Name) > 0 Then
  11.                     With Cells(Rows.Count, Range(E.Name).Column).End(xlUp)  ''Á`¶q¦WºÙ©Ò¦bªº³Ì©³¦C©¹¤W¨ì¦³¸ê®ÆªºÀx¦s®æ
  12.                             If .Row = 2 Or .Row > 2 And .Value <> Range(E.Name).Value Then
  13.                                 .Offset(1).Cells(1, -2).Resize(, 4) = Range(E.Name).Cells(, -2).Resize(, 4).Value
  14.                             End If
  15.                     End With
  16.                 End If
  17.             End If
  18.         Next
  19. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2016-4-13 08:42 ½s¿è

¦^´_ 114# c_c_lai
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Dim Rng As Range, cts As Long
  4.     If Time < #8:30:00 AM# Or Time > #1:31:00 PM# Then Exit Sub     '  «DÀç·~®É¶¡
  5.     On Error GoTo ER:
  6.     For cts = 4 To Columns.Count Step 4
  7.         Set Rng = Cells(2, cts)
  8.         With Cells(Rows.Count, cts).End(xlUp)
  9.             '  Á`¶q¦WºÙ©Ò¦bªº³Ì©³¦C©¹¤W¨ì¦³¸ê®ÆªºÀx¦s®æ
  10.             If .Row = 2 Or .Row > 2 And .Value <> Rng.Value Then      '  (¦UªÑÁ`¶q¦³ÅÜ°Ê)
  11.                 .Offset(1, 1).NumberFormatLocal = "hh:mm:ss"          '  ³]©wÀx¦s®æ®æ¦¡ (®É¶¡)
  12.                 .Offset(1).Cells(1, -1).Resize(, 4) = Rng.Cells(, -1).Resize(, 4).Value
  13.             End If
  14.         End With
  15.     Next cts
  16. ER:
  17.     Stop
  18.     MsgBox "¿ù»~­È  " & Err & VBLF &  " cts=" & cts & " - " & Rng.Address & "  ³Ì«áªºÁ`¶q¬O¤u§@ªíªº³Ì¥kÄæ ->  .Resize(, 4).Value :¶W¥X¤u§@ªí½d³ò"    Resume   
  19. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : §g¤l¬°¥Ø¼Ð¡A¤p¤H¬°¥Øªº¡C
ªð¦^¦Cªí ¤W¤@¥DÃD