- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
49#
發表於 2016-4-9 09:12
| 只看該作者
本帖最後由 GBKEE 於 2016-4-9 09:14 編輯
回復 44# 藍天麗池
今天沒營業,請問測試方式
再解釋一下,程式的邏輯
檔案開啟時 定義了Sheets("RTD")所有總量Dee公式的儲存格- Private Sub Workbook_Open()
- With Sheets("RTD")
- '''
- .Names.Add xRng_Name, xRng ''名稱定義:Sheets("RTD")所有各股總量Dee公式的儲存格
- '''
複製代碼 Sheets("RTD")工作表上任何有公式儲存格值有變動,啟動Sheets("RTD")的Worksheet_Calculate事件- Private Sub Worksheet_Calculate()
- Dim Rng As Range, E As Variant
- On Error Resume Next ' 檔案開啟時 DEE傳回錯誤值
- Set Rng = UsedRange.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
- If Not Rng Is Nothing Then Exit Sub
- On Error GoTo 0 '開盤不再處理程式碼的錯誤
- For Each E In Me.Names
- If E.Name Like "*TotalVolume*" Then '各股總量的名稱
- If Range(E.Name) > 0 Then '總量>0
- With Cells(Rows.Count, Range(E.Name).Column).End(xlUp) ''總量名稱所在的最底列往上到有資料的儲存格
- If .Row = 2 Or .Row > 2 And .Value <> Range(E.Name).Value Then '(各股總量有變動)
- '******************************************
- '最底列往上有資料的儲存格<>'總量的值
- .Offset(1).Cells(1, -2).Resize(, 4) = Range(E.Name).Cells(, -2).Resize(, 4).Value
- '******************************************
- End If
- End With
- End If
- End If
- Next
- End Sub
複製代碼 |
|