我正在尝试创建一个几乎完全自动化的测试模板。我快完成了!有几个项目让我有点头疼!我对VBA真的很陌生,我的理解很粗略,我知道如何复制和放置东西,并做一些小修改等......
我有一个文件,里面有 5 张纸。这些工作表列出如下:Summary、WTemplate(隐藏)、ATemplate(隐藏)、References(隐藏)和 SummaryTemplate(隐藏)。这 2 个模板是必需的,因为它们是 2 种不同类型的测试。我在摘要表上有一个按钮,用于制作其中一个隐藏模板的副本,它要求输入新表的名称(这是我想要的)。
我需要的下一件事是在创建这些工作表时,我希望将一行添加到摘要工作表中,其中包含所需的所有单元格链接。我已经在 SummaryTemplate 表中设置了一行。每个新行都应添加到其系列的最后一行下方,即 - 有一个用于 W 测试的部分,一个用于 A 测试的部分。
我可以通过两次不同的按钮点击来做到这一点,但是它们必须按照特定的顺序完成,否则你会得到一堆废话!我正在尝试将这两个功能放在一起。我认为工作表创建必须在行创建开始之前以某种方式结束。我还需要知道如何使用第一个问题的输入来更改替换命令(现在我有行创建询问“您想链接哪个测试编号?” - 我希望这个消失并且只需使用 1 输入)。
这是2个按钮:
Private Sub NewWaterTest_Click()
Sheets("WTemplate").Visible = True
Sheets("WTemplate").Copy After:=Sheets("Summary")
NewPageName = InputBox("What would you like to call your new Worksheet")
ActiveWindow.ActiveSheet.Name = NewPageName
Sheets("WTemplate").Visible = False
End Sub
Private Sub NextRow_Click()
ActiveSheet.Unprotect
Sheets("SummaryTemplate").Visible = True
Worksheets("SummaryTemplate").Activate
ActiveSheet.Rows(1).EntireRow.Select
Selection.Copy
Worksheets("Summary").Activate
ActiveCell.Offset(1).Insert
Sheets("SummaryTemplate").Visible = False
Worksheets("Summary").Activate
Sheets("Summary").Select
Cells.Replace What:="WTemplate", Replacement:=InputBox("Which Test Number would you like to link?"), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.Protect
End Sub
这是我试图想出的(没有运气):
Private Sub NewWaterTest_Click()
ActiveSheet.Unprotect
Sheets("WTemplate").Visible = True
Sheets("WTemplate").Copy After:=Sheets("Summary")
NewPageName = InputBox("What would you like to call your new Worksheet")
Sheets("WTemplate").Visible = False
Sheets("SummaryTemplate").Visible = True
Worksheets("SummaryTemplate").Activate
ActiveSheet.Rows(1).EntireRow.Select
Selection.Copy
Worksheets("Summary").Activate
ActiveCell.Offset(1).Insert
Sheets("SummaryTemplate").Visible = False
Worksheets("Summary").Activate
Sheets("Summary").Select
Cells.Replace What:="WTemplate", Replacement:=InputBox(NewPageName), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.Protect
ActiveWindow.ActiveSheet.Name = NewPageName
End Sub
谢谢!马特
我看不到在哪里发布我尝试过的新更新或新事物:
我以为我明白了!它现在给了我一个
运行时错误“1004”:范围类的插入方法失败调试将我发送到以下行:ActiveCell.Offset(1).Insert(即第 12 行代码)。看起来这可能有效,因为它至少完成了第一部分以创建新工作表并正确重命名它。我认为这与在尝试引用新工作表之前未完成新工作表名称有关。
Private Sub NewWaterTest_Click()
Sheets("WTemplate").Visible = True
Sheets("WTemplate").Copy After:=Sheets("Summary")
NewPageName = InputBox("What is the new test number?")
ActiveWindow.ActiveSheet.Name = NewPageName
Sheets("Wtemplate").Visible = False
ActiveSheet.Unprotect
Sheets("SummaryTemplate").Visible = True
Worksheets("SummaryTemplate").Activate
ActiveSheet.Rows(1).EntireRow.Select
Selection.Copy
Worksheets("Summary").Activate
ActiveCell.Offset(1).Insert
Sheets("SummaryTemplate").Visible = False
Worksheets("Summary").Activate
Sheets("Summary").Select
Cells.Replace What:="WTemplate", Replacement:=NewPageName, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
ActiveSheet.Protect
End Sub
谢谢你的帮助