- 帖子
- 2
- 主題
- 1
- 精華
- 0
- 積分
- 3
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- 2012
- 閱讀權限
- 10
- 註冊時間
- 2012-11-13
- 最後登錄
- 2015-11-10
|
各位先進大家好...
最近剛開始接觸VBA~還請各位多多指教~
檔案位置 (SKYDRIVE空間) : http://sdrv.ms/Sjl8e7
這EXCEL主要有三個區域,分別是輸入區、選擇(條件)區、結果區
正常情況下,將資料輸入於輸入區後再去選擇(條件)區,透過VBA,便會產生結果於結果區…
如果這時候,我直接修改輸入區,因為沒有更動到選擇區的條件,所以並不會觸發執行所寫的VBA,自然也不會更改到結果區的結果
所以我想問,是否有範例可以參考,當我在輸入區直接輸入資料時(黃色區域),在不重新點選選擇區(紅色區域)的情況下,結果區(藍色區域)會重新計算。- Private Sub Worksheet_Change(ByVal Target As Range)
- On Error GoTo 10
- Dim i1, i2, i3, i4, i5, i6, i7 As Currency
- Dim var As Integer
- If Left(Target.Address, 2) = "$A" Then '選擇A行,為選擇區
-
- '選擇區的條件(1~3)
- Dim funCont As String
- funCont = Trim(CStr(Target.Value))
- Select Case funCont
- Case "條件1"
- var = 1
- Case "條件2"
- var = 2
- Case "條件3"
- var = 3
- End Select
- '根劇選擇區的條件 輸出至結果區
- i1 = Range(Target.Address).Row
- i2 = Cells(i1, 2)
- i3 = Cells(i1, 3)
- i4 = Cells(i1, 4)
- i7 = (i2 * Cells(var + 1, 6) + i3 * Cells(var + 1, 8) + i4 - Cells(var + 1, 7))
- If i7 < 0 Then
- i7 = 0
- End If
-
- Cells(i1, 8) = i7
- End If
- 10: End Sub
複製代碼 不好意思,我很努力表達,但我知道我的表達方式很沒有章法~
先和各位先進說抱歉一下~ |
|