2013-10-29 81 views
0

我有5到6個複選框(活動x)在一排,我有50行。只允許一個複選框連續可打?

有沒有辦法讓一個複選框可以連續打勾(只有一個答案是1,2,3,4或5)?

任何簡單的vba來做到這一點,我不想寫一個代碼到每個複選框。

+0

你有沒有考慮各行而不是使用組框5-6選項按鈕?組框確保只有一個選項按鈕被選中... –

+0

您應該在組框中使用「選項按鈕」。我的anser [這裏](http://stackoverflow.com/questions/17490084/optionbutton-index-issue/17491835#17491835)解釋了你如何得到這個,這對用戶來說也更直觀,至少與我一樣,當我看到複選框時,我假設允許多個選擇,當我看到選項我知道我只能選擇一個。同樣,在這個路由中,一旦你設置了這些組,'Option Buttons'的默認動作自己完成剩下的工作,就不需要額外的代碼。 – user2140261

回答

1

是的,它可以做到但爲什麼使用ActiveX控件和如此多的額外編碼?爲什麼沒有數據驗證列表?看到這個截圖

enter image description here

如果你還想要一個VBA解決方案,那麼我會建議使用表單控件和使用他們的ALT Text進行配置。我INFACT在展示瞭如何使用使用組相似的控制SO職位之一Alt Text

enter image description here

編輯:

如果你想下去VBA路那麼這裏是另一種選擇,其中DOESN'T使用任何FORM/Active X控件

按照下圖所示排列工作表。

enter image description here

現在粘貼此代碼在表代碼區

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    If Target.Cells.CountLarge > 1 Then Exit Sub 

    If Not Intersect(Target, Columns(2)) Is Nothing Then ClearCells Target.Row, 2 
    If Not Intersect(Target, Columns(4)) Is Nothing Then ClearCells Target.Row, 4 
    If Not Intersect(Target, Columns(6)) Is Nothing Then ClearCells Target.Row, 6 
    If Not Intersect(Target, Columns(8)) Is Nothing Then ClearCells Target.Row, 8 
    If Not Intersect(Target, Columns(10)) Is Nothing Then ClearCells Target.Row, 10 
End Sub 

Sub ClearCells(r As Long, c As Long) 
    For i = 2 To 10 Step 2 
     If i <> c Then 
      With Cells(r, i) 
       .Borders(xlDiagonalDown).LineStyle = xlNone 
       .Borders(xlDiagonalUp).LineStyle = xlNone 
       .ClearContents 
      End With 
     End If 
    Next i 
    With Cells(r, c) 
     With .Borders(xlDiagonalDown) 
      .LineStyle = xlContinuous 
      .ColorIndex = xlAutomatic 
      .TintAndShade = 0 
      .Weight = xlThin 
     End With 
     With .Borders(xlDiagonalUp) 
      .LineStyle = xlContinuous 
      .ColorIndex = xlAutomatic 
      .TintAndShade = 0 
      .Weight = xlThin 
     End With 
    End With 
End Sub 

現在所有的用戶所要做的就是選擇任何灰小區的,這將是Crossed Out。另外,如果在同一行中有任何其他交叉,那麼它將被刪除。

enter image description here

SAMPLE FILE

+0

你能分享這篇文章嗎?我從來不知道你可以僅基於替代文本對控件進行分組。 – user2140261

+0

仍試圖找到它,但你不喜歡使用數據驗證的想法? –

+0

我不能使用數據驗證,它是一種從1到5級反饋問題和評級,因此更容易勾選相應的數據。問題是所有的複選框都可以打勾。 – user2703472

相關問題