【发布时间】:2018-02-24 21:11:42
【问题描述】:
我创建了一个工作簿,其中包含语言课程的所有管理细节。它有几个工作表:
1- 课程数据
2- 学生数据
3 门课程管理报告
4- 学生成绩报告
5- 学生成绩数据
教师只能访问最后一个工作表:他们会收到一个带有该工作表的工作簿,其中包含学生摘要和课程详细信息,并且他们在整个课程中输入学生的分数。最后,我将这些标记导入到原始工作簿中。
我成功地使用 vba 完成了上述操作(并为工作簿指定了一个特定的名称),以便教师可以掌握它。 (见下文摘录)
Sheets("NotasProfSem").Select
Dim filePath As String
Calculate
filePath = Range("AP2").Value & Range("AP3").Value & ".xlsx
Sheets("NotasProfSem").Copy
ActiveWorkbook.SaveAs Filename:=filePath, _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
但学生和课程信息仍链接到原始文件。所以我设计了一个解决方法:将工作表 NotasProfSem 复制到与 NotasProfSem2 相同的工作簿中,将链接转换为值,然后将 NotasProfSem2 复制到一个新的工作簿。但我需要将工作表的名称恢复为原来的 NotasProfSem。
问题:如何让vba代码在将工作表复制到全新的工作簿时更改其名称?
提供替代解决方案:我也对允许我在将工作表复制到新工作簿时执行一组单元格的“复制”>“粘贴值”的替代方案感兴趣。 (如果可能且容易的话 - 我只是在 vba 上弄湿了我的脚趾)。
注意:如果我的问题和解释不清楚,请帮助我改进。
【问题讨论】:
-
定位新工作簿时,Activesheet.Name="NotasProfSem"
-
所以我设计了一个解决方法:将工作表 NotasProfSem 复制到与 NotasProfSem2 相同的工作簿中 ...这不是必需的。将
NotasProfSem复制到新工作簿,然后直接展平该工作表上的公式(链接)。 (UsedRange.Value = UsedRange.Value可能有效) -
@Cyril - 感谢您的建议。以后会派上用场的。