Board logo

標題: [發問] 指定區域輸入某值後改變成另一值 [打印本頁]

作者: joey0415    時間: 2014-7-14 00:29     標題: 指定區域輸入某值後改變成另一值

假設需要改的的區域為range("B2:B5")

希望在輸入例如
1時就會買上改成國語
2時就會買上改成數學
等的即時改變

不希望在全部都輸入完成時,才全部改變

不知道有這種方法嗎?
謝謝



[attach]18691[/attach]
作者: joey0415    時間: 2014-7-14 09:41

本帖最後由 joey0415 於 2014-7-14 09:42 編輯

回復 1# joey0415

目前進度,可以按下去後,執轉數字轉換國字的功能,不過想要刪除時,卻出下以下問題,不知有高手可以指導一下!謝謝

若按delete鍵後,其中一格會變成空值是我想要的,若要選擇一個區域,例如range("b2:c5")後,再按delete鍵後,則會出錯,不知有方法可以不要一個個刪除,也可以選擇區域刪除
[attach]18693[/attach]
  1. Private Sub Worksheet_Change(ByVal Target As Range)

  2.     If Not Intersect(Target, Range("B2:C5")) Is Nothing Then
  3.    
  4.         If Target = 1 Then
  5.             Target = "國語"
  6.         End If
  7.    
  8.         If Target = 2 Then
  9.             Target = "數學"
  10.         End If
  11.         
  12.         If Target = 3 Then
  13.             Target = "社會"
  14.         End If
  15.         
  16.         If Target = 4 Then
  17.             Target = "自然"
  18.         End If
  19.    
  20.     End If
  21. End Sub
複製代碼

作者: Hsieh    時間: 2014-7-14 10:20

回復 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
複製代碼

作者: joey0415    時間: 2014-7-14 17:59

回復 3# Hsieh

請問超版
Target(1)是什麼意思,找不到相關資料

為什超版這樣寫若按刪除鍵不會出錯呢?

再次感謝超版
作者: Hsieh    時間: 2014-7-14 22:01

回復 4# joey0415
Range物件後加上括弧,括弧內數字代表物件的第幾個儲存格
Target(1)則表示第一個儲存格
若未指定單一儲存格,則選取多格情況下,Target會傳回二維陣列,即無法取得值
作者: joey0415    時間: 2014-7-14 22:15

回復 5# Hsieh

感謝懂80%
若選取range(b2:d5),就表示選取多格,無法取得值,所以刪除時應該會出錯,而超版是用Application.EnableEvents = False與Application.EnableEvents = True來避掉錯誤嗎?

謝謝指點
若未指定單一儲存格,則選取多格情況下,Target會傳回二維陣列,即無法取得值
作者: Hsieh    時間: 2014-7-14 22:48

回復 6# joey0415

Application.EnableEvents
是關閉開啟事件觸發,當儲存格變動時會觸發WorkSheet_Change事件程序
若未關閉此功能,則會因內容改變而連續觸發程序,造成無窮盡的觸發
並非要避開其他程式錯誤所設計
作者: joey0415    時間: 2014-7-14 23:03

回復 7# Hsieh

謝謝超版,買上來練習!再次感謝




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)