Board logo

標題: 程式何處寫錯呢 [打印本頁]

作者: sillykin    時間: 2015-10-1 18:19     標題: 程式何處寫錯呢

請問老師,在
M2輸入1,(N2=0,O2=0,P2=0
N2輸入1,(M2=0,O2=0,P2=0
O2輸入1,(M2=0,N2=0,P2=0
P2輸入1,(M2=0,N2=0,O2=0
不知下方程式何處寫錯呢??
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For i = 2 To 100
If Range("M" & i) = 1 Then
Range("M" & i) = 1
Range("N" & i) = 0
Range("O" & i) = 0
Range("P" & i) = 0
ElseIf Range("N" & i) = 1 Then
Range("M" & i) = 0
Range("O" & i) = 0
Range("P" & i) = 0

ElseIf Range("O" & i) = 1 Then
Range("M" & i) = 0
Range("N" & i) = 0
Range("P" & i) = 0

ElseIf Range("P" & i) = 1 Then
Range("M" & i) = 0
Range("N" & i) = 0
Range("O" & i) = 0
End If
Next
End Sub
作者: lpk187    時間: 2015-10-1 22:05

回復 1# sillykin


   我比較好奇的事是為什麼這程式要用工作表事件來做?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)是工作表事件,意思是當儲存格選取時所發生的事件
但裡面的內容,嗯!好像和此事件無關,或者應該說,你要把所有的儲存格當按鈕使用?
作者: sillykin    時間: 2015-10-2 08:56

回復 2# lpk187


     我比較好奇的事是為什麼這程式要用工作表事件來做?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)是工作表事件,意思是當儲存格選取時所發生的事件
但裡面的內容,原則要把所有的儲存格當按鈕使用,好比是checkbox型態。。
但自己所寫的方法,好像有點錯,不知那位大大能否幫忙協助。
作者: 准提部林    時間: 2015-10-2 15:24

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim N, M
  3. With Target
  4.   If .Column >= [M1].Column And .Column <= [P1].Column And .Row > 1 Then
  5.     Application.EnableEvents = False
  6.     N = .Value
  7.     If N <> "" Then M = 0
  8.     [M1:P1].Offset(.Row - 1, 0) = M
  9.     .Value = N
  10.     Application.EnableEvents = True
  11.   End If
  12. End With
  13. End Sub
複製代碼

作者: sillykin    時間: 2015-10-3 23:37

回復 4# 准提部林

謝謝大大的回覆及指導..感恩




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