ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 加Msgbox句后才运行正确

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-7 15:20 | 显示全部楼层 |阅读模式
此宏目的是2将目录中Word文件的表格内容导入到Excel中。

调试过程中发现,只有在某处加一句MsgBox才能得到正确结果。请各位帮助看一下哪里有问题?谢谢!

Sub 提取word表格()
On Error Resume Next
Range("A2:AN1000").ClearContents
Application.ScreenUpdating = False
Dim data(1 To 600, 1 To 40) As String
i = 0
mypath = ThisWorkbook.Path & "\"
myname = Dir(mypath & "*.docx")
Do While myname <> ""
Set mydoc = GetObject(mypath & myname)
    With mydoc
        With .tables(1)
        d = 1
            For ro = 1 To 6
            data(1 + i * 5, d) = Left(.cell(ro, 2).Range.Text, Len(.cell(ro, 2).Range.Text) - 1)
            data(1 + i * 5, d + 1) = Left(.cell(ro, 4).Range.Text, Len(.cell(ro, 4).Range.Text) - 1)
            d = d + 2
            Next
        End With
        With .tables(2)
        For ro2 = 0 To 4
            data(1 + i * 5 + ro2, 12) = Left(.cell(ro2 + 2, 1).Range.Text, Len(.cell(ro2 + 2, 1).Range.Text) - 1)
            data(1 + i * 5 + ro2, 13) = Left(.cell(ro2 + 2, 2).Range.Text, Len(.cell(ro2 + 2, 2).Range.Text) - 1)
            data(1 + i * 5 + ro2, 14) = Left(.cell(ro2 + 2, 3).Range.Text, Len(.cell(ro2 + 2, 3).Range.Text) - 1)
            data(1 + i * 5 + ro2, 15) = Left(.cell(ro2 + 2, 4).Range.Text, Len(.cell(ro2 + 2, 4).Range.Text) - 1)
        Next
i = i + 1
        End With
.Close False

''''''''加了MsgBox,才运行正常。否则每次运行结果都不同且不正确。实在不理解!请各位指点。谢谢!
MsgBox ""
'''''''
End With
myname = Dir
Loop
[A2:AN601] = data
Set mydoc = Nothing
Application.ScreenUpdating = True
End Sub



汇总test.rar

241.79 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2023-7-7 16:41 | 显示全部楼层
改这句:
if ro<6 then data(1 + i * 5, d + 1) = Left(.cell(ro, 4).Range.Text, Len(.cell(ro, 4).Range.Text) - 1)

TA的精华主题

TA的得分主题

发表于 2023-7-7 16:42 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-7 16:58 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-7 20:33 | 显示全部楼层
发现问题依旧。如果不运行MsgBox,结果还是错误。哪位老师能解释修改一下。真的有点不可思议。谢谢!

TA的精华主题

TA的得分主题

发表于 2023-7-8 01:10 | 显示全部楼层
不要随意使用On Error Resume Next,才能看到是哪句出错

按照2楼修订代码,测试没有任何问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-8 08:35 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好的。谢谢taller

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-8 08:39 来自手机 | 显示全部楼层
不过还是不理解为什么加了msgbox就对了?否则就缺了不等两个文件的内容?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-8 08:51 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
对以上现象表示深度不解。之前也用F8逐条调试过。难道是我的office出问题了?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-8 08:55 来自手机 | 显示全部楼层
本帖最后由 henterwu 于 2023-7-8 10:21 编辑

因为是缺了其中两个文件的所有内容,并不像因为合并单元格而缺了相关内容。而且,每个文件的格式都是相同的。
下图是根据修改后的代码的运行结果截图。看来是另有元凶。


微信截图_20230708101313.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 00:32 , Processed in 0.040022 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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