返回列表 上一主題 發帖

[發問] 指定區域輸入某值後改變成另一值

回復 2# joey0415
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Intersect(Target, [B2:B5]) Is Nothing Then Exit Sub
  3. Application.EnableEvents = False
  4. t = IIf(Target(1) = 1, "國文", IIf(Target(1) = 2, "數學", IIf(Target(1) = 3, "社會", IIf(Target(1) = 4, "自然", Target(1)))))
  5. Target(1) = t
  6. Application.EnableEvents = True
  7. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 4# joey0415
Range物件後加上括弧,括弧內數字代表物件的第幾個儲存格
Target(1)則表示第一個儲存格
若未指定單一儲存格,則選取多格情況下,Target會傳回二維陣列,即無法取得值
學海無涯_不恥下問

TOP

回復 6# joey0415

Application.EnableEvents
是關閉開啟事件觸發,當儲存格變動時會觸發WorkSheet_Change事件程序
若未關閉此功能,則會因內容改變而連續觸發程序,造成無窮盡的觸發
並非要避開其他程式錯誤所設計
學海無涯_不恥下問

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題