我正在尝试在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
,允许我从组合框或列表框中选择我想要的工作表。
答案 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的快捷方式吗?