2014-10-02 174 views
0

我正試圖推出一份問卷調查問卷。用戶可以回答單選按鈕,從是,有的,可能和不可以。這份調查問卷包含在名爲經理的工作表中。縮短我的代碼

如果他們選擇「是」或「否」,我想將問題複製到標有「是」和「否」的表格中的單獨表格中,以選擇「是」還是「否」。這張表被稱爲Follow Up。

我有200多個問題,所以你可以理解爲什麼我想縮短代碼。

我的第二個問題是,如果他們將他們的想法從no改爲yes,我想從no列中刪除複製的問題。當他們改變主意時,問題就會被複制到兩者中。

以下是我的代碼已經有:

Private Sub OptionButton1_Click() 

If OptionButton1.Value = True Then 'This is yes 
    Worksheets("Manager").Range("B3").Copy _ 'Within B3 is the person's name 
    Destination:=Worksheets("Follow Up").Range("B3") 'In this B3 I need the person's name 
End If 

If OptionButton1.Value = True Then 
    Worksheets("Manager").Range("B9").Copy _ 'B9 holds the question 
    Destination:=Worksheets("Follow Up").Range("B6") 'B6 is where I want it to go 
End If 
End Sub 


Private Sub OptionButton4_Click() 

If OptionButton4.Value = True Then 'This is for no 
    Worksheets("Manager").Range("B3").Copy _ 
    Destination:=Worksheets("Follow Up").Range("B3") 
End If 

If OptionButton4.Value = True Then 
    Worksheets("Manager").Range("B9").Copy _ 
    Destination:=Worksheets("Follow Up").Range("C6") 
End If 

End Sub 
+1

如果此代碼適合您,但您想要改進它,那麼此代碼可能更適合於[代碼審閱](http://codereview.stackexchange.com/)。 – skrrgwasme 2014-10-02 14:05:07

+1

如果某人在某個問題上改變了主意,該怎麼辦?你的「否」程序需要撤銷你的「是」,反之亦然。 – 2014-10-02 15:49:31

+0

這就是我困在蒂姆身上的那一點 – Biffy261 2014-10-03 16:52:38

回答

0

這裏有一個方法,但它很難提供一個非常有用的答案不知道你的另一問題是如何構成的。

下面的代碼仍然依賴於對給定問題的範圍(B3,B6,C6等)進行硬編碼:但是如果您的問題都是相同的結構,那麼應該可以再添加一個參數到TheAnswer所以它知道它應該操作哪些單元格。

Private Sub OptionButton1_Click() 
    TheAnswer OptionButton1.Value = True 'Yes-->True 
End Sub 

Private Sub OptionButton4_Click() 
    TheAnswer Not OptionButton4.Value = True 'No --> False 
End Sub 

Private Sub TheAnswer(IsYes As Boolean) 

    Dim shtM As Worksheet, shtF As Worksheet 
    Set shtM = Worksheets("Manager") 
    Set shtF = Worksheets("Follow Up") 

    shtF.Range("B3").Value = shtM.Range("B3").Value 
    shtF.Range("B6:C6").ClearContents 
    shtF.Cells(6, IIf(IsYes, 2, 3)).Value = shtM.Range("B9").Value 

End Sub