Board logo

標題: [發問] 特定條件 限制儲存格輸入 [打印本頁]

作者: li_hsien    時間: 2014-5-2 11:50     標題: 特定條件 限制儲存格輸入

請問各位大大

我有兩個欄位A、B

A欄設了清單,只能下拉Y和N
如果A欄選了N,則B欄不能輸入東西
如果A欄選了Y,則B欄就可以輸入任何東西

請問這巨集該如何設計呢???

我初步想的方式是用Worksheet_Change
EX:
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.         
  3.       If Target.Column = 1 And Target.Value = "N" Then
  4.             Target.Offset(, 1).*******   ->設不能輸入的條件
  5.       End If

  6. End Sub
複製代碼
可是都擋不住@@

不知該如何撰寫


謝謝
作者: GBKEE    時間: 2014-5-3 16:07

回復 1# li_hsien
試試看
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     If Target.Column = 2 Then
  4.         If Target.Count = 1 And Target.Offset(, -1) = "N" Then Target = ""
  5.     End If
  6. End Sub
複製代碼

作者: li_hsien    時間: 2014-5-5 08:21

回復 2# GBKEE


試了一下還是無法去除@@

儲存格有辦法使用類似ENABLE的語法嗎???

之前想最適當的方式就是當A1選了N
B1就不能做輸入的動作

不知能不能這樣處理

謝謝
作者: Hsieh    時間: 2014-5-5 08:31

回復 3# li_hsien
別把問題想的太複雜
  [attach]18209[/attach]
作者: li_hsien    時間: 2014-5-5 09:45

回復 4# Hsieh


謝謝H版大

真的是想複雜了

原來可以這樣操作

謝謝

又學到了新東西
作者: li_hsien    時間: 2014-5-6 09:00

回復 4# Hsieh

請問一下版大
我後來想到

因為用這方法
如果A1選了Y B1可以填寫
但填完後A1又選了N , B1的值還是會存在

所以想說加了這段程式碼
  1. Private Sub Worksheet_Change(ByVal Target As Range)

  2. '    Application.EnableEvents = False
  3.    
  4.     If Target.Column = 57 And Target = "N" Then
  5. '        Application.EnableEvents = True   '加這邊???
  6.         Target.Offset(, 1) = ""
  7.     End If
  8.    
  9. '    Application.EnableEvents = True   '加這邊???
  10.    
  11. End Sub
複製代碼
後來想看到相關文章

因為使用Worksheet_Change會一直執行

所以可以用Application.EnableEvents來觸發

但我不太清楚該如何操作

是一開始先設為False
觸發到A1是N的時候再變成True嗎??

可是我試過還是一直轉不回True @@

TKS~~




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