老師要求我們在userform中建立多個checkbox,讓使用者可以自由點選想要的工作表進行點選,透過VBA的方式將使用者選中的工作表,複製到一個工作表中進行工作。我遇到的狀況是當使用者只選中一個工作表進行複製時是可以的,但是使用者選擇多個工作表進行複製時,只會顯示最後一個複製過去的工作表。
1.要如何順利的將多個工作表複製到一個工作表中,而不會被覆蓋
2.使用者選擇好的checkbox已經順利製成新的工作表,要如何將userform關閉,並且導向到新的工作表進行作業
如下是我寫的程式語言
Private Sub CommandButton1_Click()
check1
check2
check3
End Sub
Sub check1()
If CheckBox1.Value = True Then
For a1 = 1 To 100
Sheets("Total").Range("A" & a1) = Sheets("Sheet3").Range("A" & a1)
Sheets("Total").Range("B" & a1) = Sheets("Sheet3").Range("B" & a1)
Sheets("Total").Range("C" & a1) = Sheets("Sheet3").Range("C" & a1)
Next a1
Else
For a1 = 1 To 100
Sheets("Total").Range("A" & a2) = ""
Sheets("Total").Range("B" & a2) = ""
Sheets("Total").Range("C" & a2) = ""
Next a1
End If
End Sub
Sub check2()
If CheckBox2.Value = True Then
For b1 = 1 To 100
Sheets("Total").Range("A" & b1) = Sheets("Sheet4").Range("A" & b1)
Sheets("Total").Range("B" & b1) = Sheets("Sheet4").Range("B" & b1)
Sheets("Total").Range("C" & b1) = Sheets("Sheet4").Range("C" & b1)
Next b1
Else
For b1 = 1 To 100
Sheets("Total").Range("A" & b2) = ""
Sheets("Total").Range("B" & b2) = ""
Sheets("Total").Range("C" & b2) = ""
Next b1
End If
End Sub
Sub check3()
If CheckBox3.Value = True Then
For c1 = 1 To 100
Sheets("Total").Range("A" & c1) = Sheets("Sheet5").Range("A" & c1)
Sheets("Total").Range("B" & c1) = Sheets("Sheet5").Range("B" & c1)
Sheets("Total").Range("C" & c1) = Sheets("Sheet5").Range("C" & c1)
Next c1
Else
For c2 = 1 To 100
Sheets("Total").Range("A" & c2) = ""
Sheets("Total").Range("B" & c2) = ""
Sheets("Total").Range("C" & c2) = ""
Next c2
End If
End Sub
程式很長,所以我用三個checkbox舉例,當每個check被點選時,就會啟動該有的動作,請大家幫幫我的忙,謝謝。