- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
12#
發表於 2015-5-29 07:01
| 只看該作者
回復 11# temple - '**************'工作表上數值的變動*************************
- Option Explicit
- Private Sub Worksheet_Change(ByVal Target As Range)
- Application.EnableEvents = False
- If Not Intersect(Range("a1:e3"), Target.Cells(1)) Is Nothing Then
- '數值的改變在 "a1:e3" 的範圍中
- Ex_工作表上的重算
- End If
- Application.EnableEvents = False
- End Sub
- Sub Ex_工作表上的重算()
- Dim myarray1(), ar(), i As Integer
- With Range("a1:d3")
- For i = 1 To .Rows.Count
- Rows(i).Cells(1, "E") = Application.Product(.Rows(i))
- Next
- End With
- End Sub
- '*************'陣列數值改變 *******************************
- Option Explicit
- Dim Ar_Key As String, myarray1()
- Sub Ex()
- Dim i As Integer, S As String
- myarray1() = Range("a1:d3").Value '陣列數值
- For i = 1 To UBound(myarray1)
- S = S & Join(Application.Index(myarray1, i), ",") & ","
- Next
- If S <> Ar_Key Then '比對陣列數值
- Ex_重算
- Ex_陣列紀錄
- End If
- End Sub
- Sub Ex_重算()
- Dim myarray1(), ar(), i As Integer
- myarray1() = Range("a1:d3").Value
-
- ReDim ar(1 To UBound(myarray1))
- For i = 1 To UBound(ar)
- ar(i) = Application.Product(Application.Index(myarray1, i))
- Next
- Range("e1:e3") = Application.WorksheetFunction.Transpose(ar)
- End Sub
- Private Sub Ex_陣列紀錄() '
- Dim i As Integer
- myarray1() = Range("a1:d3").Value
- Ar_Key = ""
- For i = 1 To UBound(myarray1)
- Ar_Key = Ar_Key & Join(Application.Index(myarray1, i), ",") & ","
- '陣列資料紀錄下來
- Next
- End Sub
複製代碼 |
|