vb如何打开需要修复的.xlsx表格

weixin_42624883 2018-07-20 10:08:10


vb从网页下载xlsx文件后,Set xlbook = xlapp.Workbooks.Open(s)打开时报错,手动打开xlsx发现文件是需要修复的,
修复保存后再执行同段代码就能顺利打开,请问各位大神,如何用vb代码规避这个问题,怎样才能直接打开这种需要修复的xlsx文件。
已尝试以下方法无效,
Application.DisplayAlerts = True/false

以下是代码
Private Sub Command16_Click()
Call jianCha_s("D:\Users\dell\Desktop\按需审计\附件\2-180625-005-00962.xlsx")
End Sub
Private Function jianCha_s(s As String)
Dim i As Integer, x As Integer, y As Integer, j As Integer, k As Integer, z As Integer, zz As Integer
Dim ireco As Integer, strsql As String
Dim sy() As String

If Reco.State <> adStateClosed Then
Reco.Close
Set Reco = Nothing
End If
strsql = "select * from illegal_s"
Reco.Open (strsql), Conn, 3, 3
ireco = Reco.RecordCount

Reco.MoveFirst
ReDim sy(ireco - 1)
For x = 0 To ireco - 1
sy(x) = Reco.Fields(1)
Reco.MoveNext
Next
Reco.Close
Set Reco = Nothing
Application.DisplayAlerts = True
Set xlapp = CreateObject("excel.application")
xlapp.Visible = True


Set xlbook = xlapp.Workbooks.Open(s)
i = xlapp.Worksheets.Count
*******
*******
*******
*******
*******
xlbook.Close
xlapp.Quit
Set xlbook = Nothing
Set xlapp = Nothing

Application.DisplayAlerts = True
End Function
...全文
870 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zx011x 2020-03-10
  • 打赏
  • 举报
回复
我没有看到正确答案,只有自己折腾了
舉杯邀明月 2018-07-25
  • 打赏
  • 举报
回复
引用 12 楼 weixin_42624883 的回复:
可以啊,读写都行的。

那说不定用VB6的“数据库引擎”也能读写(不过我不会用)。
weixin_42624883 2018-07-24
  • 打赏
  • 举报
回复
可以啊,读写都行的。
舉杯邀明月 2018-07-23
  • 打赏
  • 举报
回复
引用 7 楼 weixin_42624883 的回复:
链接: https://pan.baidu.com/s/1Wf2JKmxjWQAdFvc0wJs2FQ 密码: ru8c

我下载试了下这几个参数: IgnoreReadOnlyRecommended, Notify、Converter、UpdateLinks
没效果。

其余几个参数,感觉更“无关”了,就没试。
of123 2018-07-23
  • 打赏
  • 举报
回复
如果知道修复过程做了什么,用程序模拟即可。

比如,用二进制编辑器打开以保健操需要修复的文件和修复后的文件,分析进行了哪些修复操作。

当然,如果能查到有关 xlsx 文件修复的技术资料的话,就更容易一些。
weixin_42624883 2018-07-23
  • 打赏
  • 举报
回复
链接: https://pan.baidu.com/s/1Wf2JKmxjWQAdFvc0wJs2FQ 密码: ru8c
舉杯邀明月 2018-07-23
  • 打赏
  • 举报
回复
Python能直接支持读取xlsx文档中的数据吗?
weixin_42624883 2018-07-23
  • 打赏
  • 举报
回复
实在没辙,用python能打开,,只能换个思路了
cbm6666 2018-07-22
  • 打赏
  • 举报
回复
手动打不开的文件用VB6代码来打开估计够呛 可以说【不可能】
舉杯邀明月 2018-07-20
  • 打赏
  • 举报
回复
你试试“录制宏”,再从它的代码能找出什么端倪不。


Workbooks.Open( )函数有很多参数,也许跟某个参数值有关(只是猜测,对此完全没把握)。
舉杯邀明月 2018-07-20
  • 打赏
  • 举报
回复
引用 4 楼 weixin_42624883 的回复:
Sub 宏2()
'
' 宏2 宏
'

'
Workbooks.Open Filename:= _
"D:\Users\dell\Desktop\按需审计\附件\2-180625-005-00962.xlsx"
End Sub


坏消息,没有有价值的信息



那可能没办法了。
唯一的希望,就是查一下资料,看它的Open( )函数的那一堆参数中,有没有能“控制”这个结果的。

不知道你的这个文档,可不可以发出来,让大家试试看?
传到网盘中,发个分享链接(要可以直接下载的那种,比如百度网盘。别用需要登录后才能下载的网盘)
如果“有不方便透露的内容”那就算了。
weixin_42624883 2018-07-20
  • 打赏
  • 举报
回复
Sub 宏2()
'
' 宏2 宏
'

'
Workbooks.Open Filename:= _
"D:\Users\dell\Desktop\按需审计\附件\2-180625-005-00962.xlsx"
End Sub


坏消息,没有有价值的信息
舉杯邀明月 2018-07-20
  • 打赏
  • 举报
回复
打开过程也可以被“录制”下来的啊。
打开Excel,(此时有“默认空白文档”了)开启“录制宏”,然后通过工具按钮打开文档。
出现上面第1张图片中的提示时,点“是”,然后停止录制。
这个时候就可以看看刚才录制的打开文件过程的代码了。
当然有没有“有价值”的信息,这就不清楚了。
weixin_42624883 2018-07-20
  • 打赏
  • 举报
回复
出问题在打开xlsx这一过程,怎么录制宏

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧