2014-09-24 40 views
0

我以前做了一些工作(編碼糟糕,但嘿,它運行)使用複選框真/假看起來像這樣:組合框的值決定了做什麼用的相關表

If CheckBox1.Value = False Then 
     wb.sheets("PQC 1001").Delete 
    Else: CheckBox1.Value = True 
    End If 

此代碼的工作;我有25個CheckBox分配給每個25張。我試圖做的改進是從CheckBoxes移動到ComboBoxes。

使用組合框,我應該可以讓人們在0,1,2或3的值之間進行選擇,以指示他們想要的每張紙的數量。我初始化用戶表單來執行此操作:

ComboBox1.List = Array("0", "1", "2", "3") 

我遇到的麻煩是將每個值分配給進程。到目前爲止,我有:

If ComboBox1.Value = "0" Then 
    wb.sheets("PQC 1001").Delete 
    Else: ComboBox1.Value = "1" 

我不能讓一個「其他然後」多次入境,不知道我能做些什麼,使這項工作。我的想法/計劃到列表(這提供了有關「結束時,如果」錯誤):

Dim wb As Workbook 

If ComboBox1.Value = "0" Then 
wb.sheets("PQC 1001").Delete 

If ComboBox1.Value = "2" Then 
wb.sheets("PQC 1001").Copy ThisWorkbook.sheets(sheets.Count) 

If ComboBox1.Value = "3" Then 
wb.sheets("PQC 1001").Copy ThisWorkbook.sheets(sheets.Count) 
wb.sheets("PQC 1001").Copy ThisWorkbook.sheets(sheets.Count) 

Else: ComboBox1.Value = "1" 

End If 

上我怎樣才能使這項工作的任何想法,將不勝感激!

回答

2

顯然我並不瞭解ElseIf。

我工作的代碼如下所示:

If ComboBox1.Value = "0" Then 
    sheets("PQC 1001").Delete 

ElseIf ComboBox1.Value = "2" Then 
    sheets("PQC 1001").Copy After:=sheets(2) 

ElseIf ComboBox1.Value = "3" Then 
    sheets("QC 1001").Copy After:=sheets(2) 
    sheets("QC 1001").Copy After:=sheets(2) 

Else: ComboBox1.Value = "1" 

End If 

對不起張貼的東西我應該能找到。希望這有助於其他人,如果他們有類似的問題!

+2

您可能還會考慮「選擇案例」,因爲您有25個這樣的案例。 – 2014-09-24 17:07:47

+0

我需要閱讀Select Case以瞭解它的功能。謝謝你的提示! – Cyril 2014-09-25 12:34:08

+0

看着它;更多,更清潔的寫/讀。它似乎沒有做任何事情的速度(25項,而不是2M項),但是,我很高興你讓我意識到這種功能!感謝波特蘭亞軍。 +1 – Cyril 2014-09-25 15:16:59

相關問題