返回列表 上一主題 發帖

程式何處寫錯呢

程式何處寫錯呢

請問老師,在
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

回復 1# sillykin


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

TOP

回復 2# lpk187


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

TOP

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

TOP

回復 4# 准提部林

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

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題