返回列表 上一主題 發帖

DDE 擷取分鐘最高最低

本帖最後由 GBKEE 於 2013-6-24 16:18 編輯

回復 1# vzcen
這DEE工作表物件的程式碼
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Dim Rng As Range
  4.     Static Msg As Boolean    '以 Static 陳述式宣告的變數,在程式執行期間,會一直保留內容。
  5.     If Weekday(Date, vbMonday) > 5 Or Time < #9:00:00 AM# Or Time > #1:30:00 PM# Then Exit Sub  '非營業日 或 非營業時間
  6.     If Msg = False Then
  7.         清除舊資料
  8.         Msg = True
  9.     End If
  10.     With Cells(Rows.Count, "C").End(xlUp)
  11.         If .Row = 7 Then
  12.             Set Rng = .Offset(1)
  13.         Else
  14.             Set Rng = .Cells
  15.         End If
  16.     End With
  17.     If Rng = "" Or Rng.Text <> Format([b5], "hh:mm") Then
  18.         If Rng <> "" Then Set Rng = Rng.Offset(1)
  19.         Rng = Format([b5], "hh:mm")
  20.         Rng(1, 2) = [B6].Text
  21.         Rng(1, 3) = [B6].Text
  22.     ElseIf Rng.Text = Format([b5], "hh:mm") Then
  23.         If [B6] > Rng(1, 2) Then Rng(1, 2) = [B6].Text
  24.         If [B6] < Rng(1, 3) Then Rng(1, 3) = [B6].Text
  25.     End If
  26. End Sub
  27. Private Sub 清除舊資料()
  28.     On Error GoTo Er
  29.     If [營業日] <> Date Then            '檢查 定義名稱:"營業日"的值
  30.         Me.Names.Add "營業日", Date     '定義名稱:"營業日"的值為當日
  31.         If Weekday(Date, vbMonday) <= 5 Then Range([C8], [E8].End(xlDown)).Clear '營業日
  32.     End If
  33.     Exit Sub
  34. Er:  '處裡: 沒有定義名稱:"營業日"的錯誤
  35.      Me.Names.Add "營業日", Date        '定義名稱:"營業日"的值為當日
  36.      Resume Next                        '回到錯誤的下一個程式碼:繼續執行
  37. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 6# vzcen
這問題請附檔看看

5# 可如圖示修改格式


感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# vzcen
今天是週日,試的如何!
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 GBKEE 於 2013-6-24 16:23 編輯

回復 11# vzcen
B5的格式就不必修改了
B5的內容會顯示成102903, 此為6位數,請問 B5, 10點以前會顯示成95959, 此為5位數
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Dim Rng As Range
  4.     Static Msg As Boolean    '以 Static 陳述式宣告的變數,在程式執行期間,會一直保留內容。
  5.    ' If Time < #10:28:00 AM# Or Time > #1:30:00 PM# Then Exit Sub   '非營業日 或 非營業時間
  6.     If Msg = False Then
  7.         清除舊資料
  8.         Msg = True
  9.     End If
  10.     With Cells(Rows.Count, "C").End(xlUp)
  11.         If .Row = 7 Then
  12.             Set Rng = .Offset(1)
  13.         Else
  14.             Set Rng = .Cells
  15.         End If
  16.     End With
  17.     'If Rng = "" Or Rng.Text <> Mid([B5].Text, 1, IIf(Len([B5]) = 6, 4, 3)) Then '如果[B5]10點以前的的數值是95959, 5位數 用此程式碼
  18.     If Rng = "" Or Rng.Text <> Mid([B5].Text, 1, 4) Then
  19.         If Rng <> "" Then Set Rng = Rng.Offset(1)
  20.         With Rng
  21.             .NumberFormatLocal = "@"
  22.              '.Cells = Mid([B5].Text, 1, IIf(Len([B5]) = 6, 4, 3))                 '如果[B5]10點以前的的數值是95959. 5位數 用此程式碼
  23.           .Cells = Mid([B5].Text, 1, 4)
  24.             .Cells(1, 2) = [B6].Text
  25.             .Cells(1, 3) = [B6].Text
  26.         End With
  27.    'ElseIf Rng.Text = Mid([B5].Text, 1, IIf(Len([B5]) = 6, 4, 3)) Then                '如果[B5]10點以前的的數值是95959. 5位數 用此程式碼
  28.     ElseIf Rng.Text = Mid([B5].Text, 1, 4) Then
  29.         If [B6] > Rng(1, 2) Then Rng(1, 2) = [B6].Text
  30.         If [B6] < Rng(1, 3) Then Rng(1, 3) = [B6].Text
  31.     End If
  32. End Sub
複製代碼
  1. Private Sub 清除舊資料()
  2.     On Error GoTo Er
  3.     If [營業日] <> Date Then            '檢查 定義名稱:"營業日"的值
  4.         Me.Names.Add "營業日", Date     '定義名稱:"營業日"的值為當日
  5.         If Weekday(Date, vbMonday) <= 5 Then Range([C8], [E8].End(xlDown)).Clear ' 修改 3#   
  6.     End If
  7.     Exit Sub
  8. Er:  '處裡: 沒有定義名稱:"營業日"的錯誤
  9.      Me.Names.Add "營業日", Date        '定義名稱:"營業日"的值為當日
  10.      Resume Next                        '回到錯誤的下一個程式碼:繼續執行
  11. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 17# handsometrowa
沒錯
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 21# hhh111

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 24# hhh111

    參考這裡
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 發脾氣是短暫的發瘋。
返回列表 上一主題