VBA使用ComboBox命名工作表

时间:2018-04-23 08:24:41

标签: excel vba excel-vba combobox

我有一个commandButton,它打开一个UserForm来添加一个新的工作表。 在此Userform是一个ComboBox,我可以在其中选择机器类型。

现在我想创建一个新的工作表,其中包含在ComboBox中选择的机器类型的名称。

这是我的代码:

Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Sheets("Sheet1").Copy Before:=Sheets(10)
    ws.Name = ComboBox1
    [UserForm1].Hide
End Sub

Private Sub UserForm_Initialize()
    ComboBox1.List = Array("Machine Type 1", "Machine Type 2")
End Sub

有没有办法创建一个新工作表,它是Sheet1的副本,并将其命名为ComboBox1中的机器类型?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

请尝试下面的代码,请参阅代码注释中的注释:

Private Sub CommandButton1_Click()

    Dim ws As Worksheet

    Sheets("Sheet1").Copy Before:=Sheets(10)
    Set ws = ActiveSheet ' <-- you need to set the worksheet object to the latest copied sheet
    ws.Name = ComboBox1.Value '<-- now you can modify the name using the worksheet object
    Me.Hide '<-- hide the user-form        
End Sub

答案 1 :(得分:0)

使用

Private Sub CommandButton1_Click()
    Sheets("Sheet1").Copy Before:=Sheets(Sheets.Count)
    ActiveSheet.Name = ComboBox1.Value
    Me.Hide
End Sub