ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1165|回复: 9

[已解决] 小问题,求指教!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-3-12 09:23 | 显示全部楼层 |阅读模式
本帖最后由 madaozc 于 2020-3-12 09:44 编辑

本人小白,接触VBA两三天。遇到个小问题,是这样的:想用宏做一个在第一张图E3开始往下自动引用sheet名称的功能,写的代码如图二,问题是在第二张图,IF判断那块,我想引用除了设备1、设备2、设备3、设备4以外的sheet名称,我试了and、&、英文逗号,+都不好使,求大哥大姐指教
1.png
2.png

有在自学,实在没招了

TA的精华主题

TA的得分主题

发表于 2020-3-12 09:28 | 显示全部楼层
修改这一句看看:
065.png

TA的精华主题

TA的得分主题

发表于 2020-3-12 09:31 | 显示全部楼层
Public Sub test()
Dim Sht As Worksheet
Dim k As Long
k = 3
For Each Sht In Worksheets
    If Left(Sht.Name, 2) <> "设备" Then
        k = k + 1
        Cells(k, 2) = Sht.Name
    End If
Next Sht

End Sub

TA的精华主题

TA的得分主题

发表于 2020-3-12 09:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
简单的方法就是instr判断name里是否包含:设备。   如果用and那就是 if ***      name<>设备1  and name <>设备2 and name <> 设备3  and name <> 设备4    then  

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-12 09:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
opel-wong 发表于 2020-3-12 09:28
修改这一句看看:

抱歉我没说清,我其实只是举个例子,工厂里每台设备可不叫设备1、设备2,在这个例子里是好用的,但实际我用不上...
我想的最笨的方法就是把我不想要的sheet名称全写上,只是不知道怎么连接

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-12 09:42 | 显示全部楼层
micch 发表于 2020-3-12 09:33
简单的方法就是instr判断name里是否包含:设备。   如果用and那就是 if ***      name设备1  and name 设备 ...

靠谱啊!
抱歉我没说清,我只是举个例子,因为设备实际不能叫设备1设备2...刚有个大神也是instr但不适用与我的实际情况,不过我也学到了instr,碰到能用的场合我就会用了

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-12 09:44 | 显示全部楼层
zhangzhang 发表于 2020-3-12 09:31
Public Sub test()
Dim Sht As Worksheet
Dim k As Long

谢谢啊!
我举这个例子没说明白,实际情况设备名称不叫设备1设备2 ,你写的这段不适用于我的实际,不过还是感谢你,别人都是介绍instr只有你用别的,也长见识了

TA的精华主题

TA的得分主题

发表于 2020-3-12 09:52 | 显示全部楼层
madaozc 发表于 2020-3-12 09:42
靠谱啊!
抱歉我没说清,我只是举个例子,因为设备实际不能叫设备1设备2...刚有个大神也是instr但不适用 ...

其实根据工作表名称的规律进行简单的判断最好。

如果设备表有很多,一个一个用and连接写出来太累了。

按模拟数据,要选的表都是一个字母,那么其实可以

if len(name)=1 then

总之排除的有规律就用条件排除,选择的有规律就用条件选择,如果实在没有规律,那就只能一个一个排除了

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-3-12 10:07 | 显示全部楼层
micch 发表于 2020-3-12 09:52
其实根据工作表名称的规律进行简单的判断最好。

如果设备表有很多,一个一个用and连接写出来太累了。
...

是啊,看完就用上了,一个个敲的,设备名称没规律,只能只能先这样。因为是老表,不能随意更改表格其他内容,以后有机会重新弄得时候也得注意一下表格的格式一类的,尽量简洁有规律点

TA的精华主题

TA的得分主题

发表于 2020-3-12 10:12 | 显示全部楼层
在有工作表命名的情况下,尽量用For Each Sht In Worksheets,而不用for i=1 to worksheets.count,因为你的表格不一定是从sheet1开始的(可能因为操作删除等)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 18:14 , Processed in 0.041458 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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