請問有哪位高手可以教我,我想要讓資料填完時,自動感應是否更改的欄位為A
並且對資料做分級
目前有的概念是
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col, row As Integer
Dim i As Integer
col = Target.Column
row = Target.row
i = Target.Column + 1
If Cells(row, col) >= 0.9 Then Cells(row, i) = "A級"
ElseIf Cells(row, col) >= 0.8 Then Cells(row, i) = "B級"
Else: Cells(row, i) = "C級"
End If
End If
End Sub
但是不知道能不能加一個判斷是否為A欄更改 (A欄做資料變更時再做分級的計算)
當然可以
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 1 Then
...你要做的事情...
End If
End Sub
提供參考微軟官方範例
海大哥,我發現我在worksheet_change下方輸入任何式子都無法作用
後來換到工作表輸入,發現式子可以套用了,可以請教是為什麼嗎?
因為 Worksheet_Change 是在某個 Worksheet 裡專有的事件
定義是「當工作表變更時,執行...」
所以必須「歸屬」在某個工作表「裡面」才會有作用
就像上圖裡的下半部,歸屬在「工作表1」
像 Worksheet_Change 還有許多事件
可參考微軟說明
如果你輸入在 Module1 裡(上圖裡的上半部)
那就只是一個自定函數
只有被呼叫時才會有作用
其實你只要想一點就會明白了
當你的檔案裡有多張工作表時
Worksheet_Change 應該寫在那裡比較合理?
或者說
每張工作表都有自己的 Worksheet_Change
我是最近才開始學習,感謝海大哥耐心的解釋!