在特定工作表上创建新条目

时间:2014-11-03 20:32:57

标签: excel vba excel-vba

我正在尝试在Excel中创建一个性能日志,并为每个员工提供单独的工作表。我创建了一个封面页面,其中包含一个按钮,可以将条目添加到不同的工作表中,但它只会转到该工作表。有没有办法让按钮询问哪个工作表将条目粘贴到其中。

我目前的编码如下:

Sub AddNewEntry()

AddNewEntry Macro

    Sheets("Blank").Select
    Range("$A$6:$J$19").Select
    Selection.Copy
    Sheets("Sheet 1").Select
    Range("$A$6").Select
    Selection.Insert Shift:=xlDown
    Range("$B$7:$C$7").Select

End Sub

我想用新行替换代码行Sheets("Sheet 1").Select,允许我从组合框或列表框中选择我想要的工作表。

1 个答案:

答案 0 :(得分:0)

好的迈克尔,这应该让你去。正如@ jbarker2160评论的那样,即使你还提到了一个“按钮”,组合框看起来也是明智的选择。假设您将ActiveX Combobox直接放在工作表Sheet1上,请参阅下面的内容 - 稍后我会回到您的“按钮”..

在“ThisWorkbook”模块中,选择“打开”事件并粘贴此代码:

With Sheets("Sheet1").ComboBox1
    .Clear
        For Each ws In Sheets
           .AddItem ws.Name
        Next
        .Value = "Sheet1"
End With

这将在您打开工作簿时填充组合框。

在“Sheet1”模块中,选择“工作表” - > “激活”事件并粘贴上面相同的代码。每当重新选择Sheet1时,这将重新填充组合框,以防您删除或添加新工作表。

在“Sheet1”模块中,选择“Combobox1” - > “更改”事件并粘贴以下代码:

Dim sht As String
    If ComboBox1.Value = "" Then ComboBox1.Value = "Sheet1"
sht = ComboBox1.Value
Sheets(sht).Select

这将选择您从组合框中选择的工作表。

然后,您只需删除Sheets("Sheet 1").Select行。

根据您的按钮想法,您可以考虑在每个其他工作表上放置一个按钮来选择Sheet1 - 作为回到Combobox的快捷方式吗?