Board logo

標題: [發問] 關於圖表..拜託各位大大了 >< [打印本頁]

作者: saleen    時間: 2015-1-23 11:25     標題: 關於圖表..拜託各位大大了 ><

小妹真的已經試過各種方法很奇怪的就是不行
拜託誰來救救小妹吧 T_T

以下是程式碼
  1. Option Explicit

  2. Dim timerEnabled As Boolean

  3. Sub Timer()  '每分鐘紀錄資料的Timer

  4. If timerEnabled Then
  5. Application.OnTime (Now + TimeValue("00:01:00")), "Update" '指定的時間區段
  6. Else
  7. timerEnabled = True

  8. If (TimeValue(Now) <= TimeValue("08:45:00")) Then
  9. Application.OnTime (TimeValue("08:45:00")), "Update"
  10. Else
  11. Application.OnTime (Now + TimeValue("00:00:05")), "Update" 'DDE緩衝時間
  12. End If
  13. End If

  14. End Sub

  15. Sub Update() '每分鐘紀錄資料的 Sub

  16. On Error Resume Next
  17. If (TimeValue(Now) < TimeValue("8:45:00") Or TimeValue(Now) > TimeValue("13:45:30")) Then Exit Sub '只在指定的時間區段內紀錄資料

  18. With 工作表1

  19. .Range("A2:ZZ2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  20. .Range("A3:ZZ3") = .Range("A3:ZZ3").Value

  21. End With

  22. 工作表2.Rows(2).Copy
  23. 工作表1.Rows(2).PasteSpecial

  24. If timerEnabled Then Call Timer
  25. End Sub
複製代碼
小妹在工作表 3 有一個圖表
這個圖表會抓 A2~A(M) 其中M是每分鐘記錄的資料
很奇怪的是在 Update 這個程式每跑完一次就會新增一列到第 2 列
然後圖表的資料選取就會自動從
=工作表1!$A$2:$A$10

變成
=工作表1!$A$3:$A$11

我想要做到是可以前面的 $A$2 永遠不動 , 後面則跟著最新有資料的那行跑


拜請大大們來就救小妹了 Q_____Q
作者: luhpro    時間: 2015-1-26 00:09

本帖最後由 luhpro 於 2015-1-26 00:12 編輯

回復 1# saleen
因為你底下這一行會改變圖表的來源對應位址:
.Range("A2:ZZ2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

試試在被改變後再重設回原位址的方式,看是否符合你的需求 :
  1. With 工作表1
  2. .Range("A2:ZZ2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
  3. .Range("A3:ZZ3") = .Range("A3:ZZ3").Value

  4. Sheets("工作表3").ChartObjects("圖表 1").Activate
  5. ActiveChart.SetSourceData Source:=Sheets("工作表1").Range("$A$2:$A$10"),PlotBy:=xlColumns

  6. End With
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)