Excel VBA复制工作表后新表单元格赋值异常问题求助
问题解决:复制工作表后修改新表单元格而非原表
问题出在你没有明确指定操作的工作表对象,Range("H2")默认会使用当前激活的工作表,但少数情况下复制操作后激活状态可能意外切回原表,导致修改了错误的工作表。
正确的做法是在复制工作表时直接捕获新表的对象引用,全程通过这个对象操作,彻底摆脱对ActiveSheet的依赖:
Dim wNM As String Dim newWs As Worksheet Dim EMPN As String wNM = ActiveSheet.Name ' 复制工作表并直接获取新表的对象引用 Set newWs = Worksheets(wNM).Copy(After:=Worksheets(wNM)) EMPN = Application.InputBox("Enter EMPN") ' 通过对象直接设置新表名称 newWs.Name = EMPN ' 明确指定新表的H2单元格赋值 newWs.Range("H2").Value = EMPN
修改说明
- 新增
newWs变量存储复制后的新工作表对象,所有操作都直接指向这个对象,不会出现混淆 - 去掉对
ActiveSheet的依赖,避免激活状态变化带来的错误 - 补充变量声明,符合VBA代码规范
内容的提问来源于stack exchange,提问作者Matt Laming
相关产品推荐
相关产品推荐

