2015-05-11 45 views
0

我有下面的代碼工作在預算模板工作。然而,在我將這個推出給所有用戶之前,我需要讓Mac友好。由於Macs不喜歡ActiveX控件,我試圖找出一種方法來使這個代碼使用窗體控件工作。任何人對我有任何想法? 謝謝!使用窗體控件複選框而不是ActiveX觸發VBA代碼

Private Sub travelcalc_Click() 
ActiveSheet.Unprotect Password:="PASSWORD" 
    If Me.travelcalc.Value = False Then 
    Range("C19:L20").Locked = False 
    Sheets("Travel Calculator").Visible = False 
Else 
    Sheets("Travel Calculator").Visible = True 
    Range("$C$19") = Worksheets("Travel Calculator").Range("$N$25") 
    Range("$D$19") = Worksheets("Travel Calculator").Range("$P$25") 
    Range("$E$19") = Worksheets("Travel Calculator").Range("$R$25") 
    Range("$F$19") = Worksheets("Travel Calculator").Range("$T$25") 
    Range("$G$19") = Worksheets("Travel Calculator").Range("$V$25") 
    Range("$H$19") = Worksheets("Travel Calculator").Range("$X$25") 
    Range("$I$19") = Worksheets("Travel Calculator").Range("$Z$25") 
    Range("$J$19") = Worksheets("Travel Calculator").Range("$AB$25") 
    Range("$K$19") = Worksheets("Travel Calculator").Range("$AD$25") 
    Range("$L$19") = Worksheets("Travel Calculator").Range("$AF$25") 
    Range("$C$20") = Worksheets("Travel Calculator").Range("$N$51") 
    Range("$D$20") = Worksheets("Travel Calculator").Range("$P$51") 
    Range("$E$20") = Worksheets("Travel Calculator").Range("$R$51") 
    Range("$F$20") = Worksheets("Travel Calculator").Range("$T$51") 
    Range("$G$20") = Worksheets("Travel Calculator").Range("$V$51") 
    Range("$H$20") = Worksheets("Travel Calculator").Range("$X$51") 
    Range("$I$20") = Worksheets("Travel Calculator").Range("$Z$51") 
    Range("$J$20") = Worksheets("Travel Calculator").Range("$AB$51") 
    Range("$K$20") = Worksheets("Travel Calculator").Range("$AD$51") 
    Range("$L$20") = Worksheets("Travel Calculator").Range("$AF$51") 
    Range("C19:L20").Locked = True 
End If 
ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True 

End Sub 

回答

0

這個宏分配給複選框工作完美。

Sub CheckBox11_Click() 
ActiveSheet.Unprotect Password:="PASSWORD" 
    If ActiveSheet.Shapes("Check Box 11").OLEFormat.Object.Value <> 1 Then 
    Range("C19:L20").Locked = False 
     Sheets("Travel Calculator").Visible = False 
Else 
    Sheets("Travel Calculator").Visible = True 
    Range("$C$19") = Worksheets("Travel Calculator").Range("$N$25") 
    Range("$D$19") = Worksheets("Travel Calculator").Range("$P$25") 
    Range("$E$19") = Worksheets("Travel Calculator").Range("$R$25") 
    Range("$F$19") = Worksheets("Travel Calculator").Range("$T$25") 
    Range("$G$19") = Worksheets("Travel Calculator").Range("$V$25") 
    Range("$H$19") = Worksheets("Travel Calculator").Range("$X$25") 
    Range("$I$19") = Worksheets("Travel Calculator").Range("$Z$25") 
    Range("$J$19") = Worksheets("Travel Calculator").Range("$AB$25") 
    Range("$K$19") = Worksheets("Travel Calculator").Range("$AD$25") 
    Range("$L$19") = Worksheets("Travel Calculator").Range("$AF$25") 
    Range("$C$20") = Worksheets("Travel Calculator").Range("$N$51") 
    Range("$D$20") = Worksheets("Travel Calculator").Range("$P$51") 
    Range("$E$20") = Worksheets("Travel Calculator").Range("$R$51") 
    Range("$F$20") = Worksheets("Travel Calculator").Range("$T$51") 
    Range("$G$20") = Worksheets("Travel Calculator").Range("$V$51") 
    Range("$H$20") = Worksheets("Travel Calculator").Range("$X$51") 
    Range("$I$20") = Worksheets("Travel Calculator").Range("$Z$51") 
    Range("$J$20") = Worksheets("Travel Calculator").Range("$AB$51") 
    Range("$K$20") = Worksheets("Travel Calculator").Range("$AD$51") 
    Range("$L$20") = Worksheets("Travel Calculator").Range("$AF$51") 
    Range("C19:L20").Locked = True 
End If 
ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True 

End Sub 
0

插入表單控件後,右鍵單擊它並選擇指定宏,然後選擇新建。一個宏將被分配給它的「點擊事件」。

如果已經檢查檢查是有點棘手,但可行的:

Private Sub CheckBox1_Click() 'assign this macro to your checkbox; make sure it is in a standard module 
ActiveSheet.Unprotect Password:="PASSWORD" 

If ActiveSheet.Shapes("Check Box 1").OLEFormat.Object.Value <> 1 Then 
    Range("C19:L20").Locked = False 
    Sheets("Travel Calculator").Visible = False 
Else 
    yadda-yadda your code here... 
End if 

ActiveSheet.Protect Password:="PASSWORD", AllowFormattingColumns:=True, AllowFormattingRows:=True 
End Sub 

說實話,我只能希望這個作品在Mac上,從來沒有試過。但如果你說表單控件工作正常,那麼這應該做到這一點...

+0

這個宏工作得很好。我在MAC上檢查過它,它也在那裏工作。謝謝! – NU2this

+0

沒有概率,很高興我能幫上忙。你能把它標記爲答案嗎?謝謝! – vacip

相關問題