返回列表 上一主題 發帖

DDE記錄如何複製在不同工作表

回復 1# jerrystock
幫你多加二句    你是要如此嗎?
  1. Private Sub Workbook_Open()
  2. If Time >= TimeValue("08:45:00") And Time <= TimeValue("13:45:00") Then
  3. Sheet2.[B7:G307] = ""
  4. change
  5. Else
  6. Application.OnTime "09:01:00", "ThisWorkbook.change"
  7. End If
  8. End Sub
  9. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10. Private Sub change()
  11.     Dim TimeRange As Range, Rng As Range, R As Range
  12.     With Sheet2
  13.         Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  14.         Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  15.         Set R = Application.Evaluate(Mid(.Range("A3").Formula, 2))
  16.         'R 是A3的公式 =Data!B2 所指的位置
  17.        Rng.Value = R.Offset(, 1).Resize(, 6).Value                         ' ***這裡也要: R的數據 指定到 Rng
  18.   With Sheet5 '電子期我加入的部分
  19.         Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  20.         Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  21.         Set R = Application.Evaluate(Mid(.Range("A3").Formula, 3))
  22.         'R 是A3的公式 =Data!B2 所指的位置
  23.          Rng.Value = R.Offset(, 1).Resize(, 6).Value                         ' ****Sheet6的 這裡也要: R的數據 指定到 Rng
  24.          With Sheet6 '金融期我加入的部分
  25.         Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  26.         Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  27.         Set R = Application.Evaluate(Mid(.Range("A3").Formula, 4))
  28.         'R 是A3的公式 =Data!B2 所指的位置
  29.          Rng.Value = R.Offset(, 1).Resize(, 6).Value                        'R的數據 指定到 Sheet6的 Rng
  30.     End With
  31.     End With
  32.     End With
  33.        If Time > TimeValue("13:45:00") Then Exit Sub
  34.     Application.OnTime Now + TimeValue("00:01"), "ThisWorkbook.change"
  35. End Sub
複製代碼

TOP

回復 4# jerrystock
  1. Private Sub change()
  2.     Dim TimeRange As Range, Rng As Range, R As Range
  3.     With Sheet2
  4.         Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  5.         Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  6.         Set R = Application.Evaluate(Mid(.Range("A3").Formula, 2))
  7.         'R 是A3的公式 =Data!B2 所指的位置
  8.         Rng.Value = R.Offset(, 1).Resize(, 6).Value                         ' ***這裡也要: R的數據 指定到 Rng
  9.         .Activate
  10.         Rng.Select
  11.         With Sheet5 '電子期我加入的部分
  12.             Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  13.             Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  14.             Set R = Application.Evaluate(Mid(.Range("A3").Formula, 3))
  15.             'R 是A3的公式 =Data!B2 所指的位置
  16.             Rng.Value = R.Offset(, 1).Resize(, 6).Value                         ' ****Sheet6的 這裡也要: R的數據 指定到 Rng
  17.             .Activate
  18.             Rng.Select
  19.             With Sheet6 '金融期我加入的部分
  20.                 Set TimeRange = .[A:A].Find(Format(TimeSerial(Hour(Time), Minute(Time), 0), "hh:mm"), LookIn:=xlValues)
  21.                 Set Rng = TimeRange.Offset(, 1).Resize(1, 6)
  22.                 Set R = Application.Evaluate(Mid(.Range("A3").Formula, 4))
  23.                 'R 是A3的公式 =Data!B2 所指的位置
  24.                 Rng.Value = R.Offset(, 1).Resize(, 6).Value                        'R的數據 指定到 Sheet6的 Rng
  25.                 .Activate
  26.                 Rng.Select
  27.             End With
  28.         End With
  29.     End With
  30.     If Time > TimeValue("13:45:00") Then Exit Sub
  31.     Application.OnTime Now + TimeValue("00:01"), "ThisWorkbook.change"
  32. End Sub
複製代碼

TOP

回復 7# jerrystock
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()  'Sheet6模組的重算事件
  3.     '需先在Sheet6 寫上公式
  4.     '如 A2=Sheet2!A1   Sheet2的開盤價
  5.     '如 B2=Sheet2!B1   Sheet2的收盤價
  6.     '數據從A4往下記錄  例:A4 ="收盤價"
  7.     With Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, 2)
  8.         .Value = [A2].Resize(, 2).Value
  9.         .Select
  10.     End With
  11. End Sub
複製代碼

TOP

回復 9# jerrystock
Private Sub Worksheet_Calculate()  'Sheet6模組的重算事件
你是複製在Sheet6模組內嗎? 如果是 還有疑問 請附檔來看看 .

TOP

回復 11# jerrystock
  1. Private Sub Worksheet_Calculate()  'Sheet6模組的重算事件
  2.     Me.Activate         '*****加上這程式碼
  3.     With Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, 9)
  4.         .Value = [A7].Resize(, 9).Value
  5.         .Select
  6.     End With
  7. End Sub
複製代碼

TOP

        靜思自在 : 真正的愛心,是照顧好自己的這顆心。
返回列表 上一主題