標題:
[發問]
指定區域輸入某值後改變成另一值
[打印本頁]
作者:
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]
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2:C5")) Is Nothing Then
If Target = 1 Then
Target = "國語"
End If
If Target = 2 Then
Target = "數學"
End If
If Target = 3 Then
Target = "社會"
End If
If Target = 4 Then
Target = "自然"
End If
End If
End Sub
複製代碼
作者:
Hsieh
時間:
2014-7-14 10:20
回復
2#
joey0415
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B2:B5]) Is Nothing Then Exit Sub
Application.EnableEvents = False
t = IIf(Target(1) = 1, "國文", IIf(Target(1) = 2, "數學", IIf(Target(1) = 3, "社會", IIf(Target(1) = 4, "自然", Target(1)))))
Target(1) = t
Application.EnableEvents = True
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/)