Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2731|回复: 6

有没有办法将代码改为不受工作表名称修改影响呢?

[复制链接]
发表于 2017-4-22 13:27 | 显示全部楼层 |阅读模式
由于经常要移动或复制一组工作表新建工作簿,对复制的工作表进行一些编辑操作后另存为新文件,为了简便我用录制宏的方法做了个控件按钮,但出现一个问题,当我修改了其中的一个工作表名称后(如将清单1改为清单2),宏代码就失效了,有没有办法将代码改为不受工作表名称修改影响呢?

QQ图片20170422130242.png

材料表.rar

12.61 KB, 下载次数: 5

发表于 2017-4-22 15:08 | 显示全部楼层
For Each temp In Sheets
    If temp.Name Like "清单*" Then
   
        temp.Select     '此句为红色那句
        
        '红色 以下部分
        
    End If
Next
回复

使用道具 举报

 楼主| 发表于 2017-4-22 17:22 | 显示全部楼层
砂海 发表于 2017-4-22 15:08
For Each temp In Sheets
    If temp.Name Like "清单*" Then
   

由于工作表名称不一定是带“清单”的,我现在用sheet1.Select代替Sheets("清单1").select,可是  Sheets(Array("材料明细", "A1汇总", "清单1")),这个不知该怎么用,不知能否指教一下呢?谢谢!
回复

使用道具 举报

发表于 2017-4-22 20:49 | 显示全部楼层
那可以用内容判断
比如
If temp.range("a1").value = "需要复制*" Then
回复

使用道具 举报

 楼主| 发表于 2017-4-22 21:07 | 显示全部楼层
砂海 发表于 2017-4-22 20:49
那可以用内容判断
比如
If temp.range("a1").value = "需要复制*" Then

太菜了,不怎么会弄,这代码对我来说真像是天书,不过非常感谢你的关注和回复!
回复

使用道具 举报

发表于 2017-4-28 15:49 | 显示全部楼层
可以用工作表的 codename, codename不会变化,也可以将代码写在经常变化的工作表中,用Me来引用当前工作表,也不用管名称的变化。
回复

使用道具 举报

发表于 2017-4-28 16:03 | 显示全部楼层
保证工作表顺序不变,用sheets(1)代替sheets("清单1"),依次类推。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 05:33 , Processed in 0.300344 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表