- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
回復 4# saleen
是不是妳的需求?
我將妳的程式碼加入了資料座標值值的動態異動,
只要資料變動,它於執行 upd() 時會同時修正。- Private Sub Workbook_Open()
- Call updateDate ' 程式一啟始,便去自動執行 updateDate
- newHour = Hour(Now())
- newMinute = Minute(Now())
- newSecond = Second(Now()) + 20
- waittime = TimeSerial(newHour, newMinute, newSecond)
- Application.Wait waittime ' 稍待 20 秒後執行 upd()
- Call upd
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- Me.Save
- End Sub
- Sub updateDate()
- Dim Rng As Range
- With 工作表1
- If .[A2] <> Date Then
- ' .Range("A2:H2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
- .Range("A2:H2").Insert Shift:=xlShiftDown
- .[A2] = Date
- End If
- End With
- End Sub
- Sub upd()
- Dim Rng As Range
-
- With 工作表1
- Set Rng = .[B2].Resize(1, 5)
-
- If .[A2] = Date Then
- ' 因為原指定的 J44 會因資料之行數增減而有所變動。
- Rng(1) = "=XQNET|Quote!'TSEX5.TW-StockValueRatio'"
- Rng(2) = "=XQNET|Quote!'TSEX5.TW-PriceChangeRatio'"
- Rng(3) = "=XQNET|Quote!'TSEX8.TW-StockValueRatio'"
- Rng(4) = "=XQNET|Quote!'TSEX8.TW-PriceChangeRatio'"
- Rng(5) = "=100-B2-D2"
- Rng.Value = Rng.Value ' 將公式以欄值取代
- End If
- End With
-
- reDraw ' 重新繪製圖表座標值
- End Sub
- Sub reDraw()
- Dim shp As Integer, EndKBarRow As Long
-
- With 工作表1
- EndKBarRow = .Range("B" & Sheets("工作表1").Rows.Count).End(xlUp).Row
- shp = 0
- For Each oShape In .Shapes
- If oShape.Type = 3 Then ' 既有的統計圖表
- oShape.Select
- shp = shp + 1
-
- With ActiveChart
- .SetSourceData Source:=IIf(shp = 1, Range("工作表1!$A$1:工作表1!$A$" & CStr(EndKBarRow) & ", 工作表1!$B$1:工作表1!$B$" & CStr(EndKBarRow)), _
- IIf(shp = 2, Range("工作表1!$A$1:工作表1!$A$" & CStr(EndKBarRow) & ", 工作表1!$C$1:工作表1!$C$" & CStr(EndKBarRow)), _
- IIf(shp = 3, Range("工作表1!$A$1:工作表1!$A$" & CStr(EndKBarRow) & ", 工作表1!$D$1:工作表1!$D$" & CStr(EndKBarRow)), _
- Range("工作表1!$A$1:工作表1!$A$" & CStr(EndKBarRow) & ", 工作表1!$E$1:工作表1!$E$" & CStr(EndKBarRow)))))
- With .Axes(xlCategory)
- .CategoryType = xlTimeScale
- .MajorUnit = 1
- .MajorUnitScale = xlDays
- .MinorUnit = 1
- .MinorUnitScale = xlDays
- End With
- End With
- End If
- Next
- .[A1].Select
- End With
- End Sub
複製代碼 |
|