2013-11-28 88 views
1

我有我想使用到基取消組合columns.That是如果它被點擊第一次它基團的形式控制按鈕/隱藏那些列和下一次它點擊它取消隱藏這些列。計數沒有點擊的對在Excel VBA中一個按鈕

我想算沒有點擊該按鈕,這樣,如果包含no of clicks計數variableodd我將其他隱藏列,如果它是even我將取消隱藏列。

這是我的代碼

Private Sub CommandButton1_Click() 
Static cnt As Long 
cnt = 0 
Dim remain As Integer 
cnt = cnt + 1 


remain = cnt Mod 2 

If remain = 1 Then 
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1 
End If 

If remain = 2 Then 
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=2 
End If 


End Sub 

所以,我怎麼能算無該按鈕的點擊在VBA的變量。 對不起英文不好?

+1

我可以給你答案,但請告訴我們你有什麼試過?要求提供代碼的問題必須表明對正在解決的問題有一個最小的理解。包括嘗試的解決方案,爲什麼他們不工作,以及預期的結果。另請參閱:[堆棧溢出問題清單](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) –

+0

我已編輯帖子並給出我的代碼。 – shiven

回答

3

好吧,你不需要使用計數,並繼續添加到它。您可以改用Boolean變量。這是一個例子。這是一個ON/OFF交換機。

Option Explicit 

Dim boolOn As Boolean 

Sub CommandButton1_Click() 
    If boolOn = False Then 
     boolOn = True 

     MsgBox "OFF" 
     ' 
     '~~> Do what you want to do 
     ' 
    Else 
     boolOn = False 
     ' 
     '~~> Do what you want to do 
     ' 
     MsgBox "ON" 
    End If 
End Sub 
+0

'子CommandButton1_Click() 如果boolOn =假然後 boolOn =真 ActiveSheet.Outline.ShowLevels RowLevels:= 0,ColumnLevels:= 1 否則 boolOn =假 ActiveSheet.Outline.ShowLevels RowLevels:= 0 ,ColumnLevels:= 2 結束如果 結束Sub' 這是我修改了代碼,但是這是不是給我想要 – shiven

+0

請解釋一下「預期效果」 –

+0

對不起,我糾正我的mistake.Thanks很多關於解決方案的預期效果 – shiven