ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南

[求助] 某表(2) 数据替换到 某表 能优化下代码吗

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-1 16:04 | 显示全部楼层
Sub 数据替换3()
   
    Dim I As Long, J As Long
    Dim NewName As String
    Dim Cz As String
    '删除工作表名称中的空格
    For I = 1 To ThisWorkbook.Sheets.Count
        ' 按照工作簿中工作表的数量进行循环
        Sheets(I).Name = Trim(Replace(Sheets(I).Name, " ", ""))
    Next
    For I = 1 To ThisWorkbook.Sheets.Count
        ' 按照工作簿中工作表的数量进行循环
        Cz = "否"
        If InStr(Sheets(I).Name, "(2)") > 0 Then
            ' 如果工作表名称中含有“(2)”
            NewName = Trim(Replace(Sheets(I).Name, "(2)", ""))
            For J = 1 To ThisWorkbook.Sheets.Count
                If Sheets(J).Name = NewName Then
                    ' 如果NewName这个工作表存在
                    Sheets(NewName).Activate
                    Range("A1").CurrentRegion.Select
                    Selection.Clear
                    Sheets(I).Activate
                    Range("A1").CurrentRegion.Select
                    Selection.Copy
                    Sheets(NewName).Activate
                    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False
                    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False
                    Cz = "是"
                End If
            Next
            If Cz <> "是" Then
                MsgBox "工作簿中不存在名称为  " & NewName & "   的工作表,请检查。"
                End
            End If
        End If
    Next
    MsgBox "OK!"
End Sub


改了一下,去掉了那个函数。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-1 16:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
边缘码农 发表于 2024-7-1 15:45
我这边运行正常。把你现在的附件传上来我看一下。

image.jpg

卧槽,大佬刚要上传就可以,研究了一会,原来是代码放在其他工作簿运行就不可以,得把代码放到要运行的工作簿才行

这样要怎么修改代码呀

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-1 16:17 | 显示全部楼层
本帖最后由 再回首-沉默 于 2024-7-1 16:19 编辑
边缘码农 发表于 2024-7-1 15:56
我的环境和你的环境肯定是不一样的。

是研究了下,vba在其他工作簿就不能运行,这个要咋修改呀,大佬

表3 vba代码汇总表 (2).zip

275.69 KB, 下载次数: 2

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-1 16:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再回首-沉默 发表于 2024-7-1 16:17
是研究了下,vba在其他工作簿就不能运行,这个要咋修改呀,大佬

我是习惯把所有vba都整理到一个工作簿上面去,然后打开其他工作簿运行汇总vba的工作簿

TA的精华主题

TA的得分主题

发表于 2024-7-1 16:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我发了个修改后的代码,还在审核中吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-1 16:24 | 显示全部楼层
边缘码农 发表于 2024-7-1 16:23
我发了个修改后的代码,还在审核中吧。

好的,谢谢大佬的耐心解决

TA的精华主题

TA的得分主题

发表于 2024-7-1 16:26 | 显示全部楼层
再回首-沉默 发表于 2024-7-1 16:21
我是习惯把所有vba都整理到一个工作簿上面去,然后打开其他工作簿运行汇总vba的工作簿

打开   vba代码汇总表 (2)  这个文件,在这个文件中运行这个文件中的代码,一切正常。

TA的精华主题

TA的得分主题

发表于 2024-7-1 16:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我大约明白你是怎么操作的了。我再试试。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-1 16:32 | 显示全部楼层
边缘码农 发表于 2024-7-1 16:28
我大约明白你是怎么操作的了。我再试试。

嗯嗯呢,看来我还是有待提高表达能力,哈哈哈

打开   vba代码汇总表 (2)  这个文件,在这个文件中运行这个文件中的代码,一切正常。
打开   表3 这个文件,在这个文件中运行vba代码汇总表 (2)  这个文件的代码,不正常

TA的精华主题

TA的得分主题

发表于 2024-7-1 16:34 | 显示全部楼层
再回首-沉默 发表于 2024-7-1 16:32
嗯嗯呢,看来我还是有待提高表达能力,哈哈哈

打开   vba代码汇总表 (2)  这个文件,在这个文件中运行 ...

是的,因为这样:
image.png

判断文件名是否存在的函数,是在vba代码汇总表 (2) 这个文件中找表3 这个文件的工作表。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 23:59 , Processed in 0.041641 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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