Excel精英培训网

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

[已解决]工作簿一打开就被隐藏了,无法查看

[复制链接]
发表于 2021-6-28 14:08 | 显示全部楼层 |阅读模式
本帖最后由 醉里流年 于 2021-6-28 14:08 编辑

重装了系统,装了WPS,莫名其妙就出现了文件打开后就被隐藏的情况,具体情况如下:
打开后在WPS界面不显示,窗口列表中也查找不到,再次点击文件打开就提示文件已打开。将文件发给别人,在别的电脑上也无法打开,用EXCEL打开会提示检查后缀是否正确。只能在VBE工程列表中看到文件打开的证明
可怕的是不知道哪个文件会中招,第一次打开还好好的,然后一关闭就无法再次打开了就成这模样了。。。好几个文件打不开了,然后也不知道怎么修复,求助各位大佬,看看是什么原因?可有方法解决?

最佳答案
2021-6-30 10:01
醉里流年 发表于 2021-6-29 17:38
我也试过for each wb in workbooks,但是返回不了该工作簿啊?大神你那可以?

for each wb in workbooks  尴尬,这个语句是写的想当然没有经过测试,测试了循环不了全部文档。所以之前回复下面重新写的语句使用循环vba工程里面的项目获取文档信息For Each vb In Application.VBE.VBProjects


无法显示界面截图.jpg

2021年6月26日.zip

175.72 KB, 下载次数: 11

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2021-6-28 16:23 | 显示全部楼层
本帖最后由 0126 于 2021-6-28 19:51 编辑

For Each wbk In Application.Workbooks
   If LCase(Right(wbk.name, 4)) = "xlsx" Then wbk.SaveAs wbk.FullName, FileFormat:=xlOpenXMLWorkbook
Next

应该是被保存为加载宏之类不显示的工作表,以上语句是让工作蒲是xlsx后缀名的工作蒲都另存为工作蒲。暂时不了解如何查看工作蒲真正的后缀类型,希望有路过大神指点
得大师指点。修改了下。下面代码是提取vbe工程里面的项目工作蒲,判断格式是否一致,不一致,另存为xlsx格式的文档


Sub 修正工作蒲()
Dim vb, wbk As Workbook, ar
For Each vb In Application.VBE.VBProjects
   Set wbk = Workbooks(Mid(vb.Filename, VBA.InStrRev(vb.Filename, "\") + 1, 99))
   ar = isworkbooks(wbk)
   If ar(3) <> LCase(Mid(wbk.name, VBA.InStrRev(wbk.name, ".") + 1, 99)) Then wbk.SaveAs Left(wbk.FullName, VBA.InStrRev(wbk.FullName, ".")) & "xlsx", xlOpenXMLWorkbook, , , , , , xlLocalSessionChanges ' 另保存为
Next
End Sub
Function isworkbooks(wbk As Workbook)
dim st as string
    st  = wbk.FileFormat
    arr = Array(-4158, "xlCurrentPlatformText\/-4158\/当前平台文本\/txt", -4143, "xlWorkbookNormal\/-4143\/常规工作簿\/xls", 2, "xlSYLK\/2\/符号链接格式\/slk", 4, "xlWKS\/4\/Lotus 1-2-3 格式\/wks", 5, "xlWK1\/5\/Lotus 1-2-3 格式\/wk1", _
                  6, "xlCSV\/6\/CSV\/csv", 7, "xlDBF2\/7\/Dbase 2 格式\/dbf", 8, "xlDBF3\/8\/Dbase 3 格式\/dbf", 9, "xlDIF\/9\/数据交换格式\/dif", 11, "xlDBF4\/11\/Dbase 4 格式\/dbf", _
                 14, "xlWJ2WD1\/14\/日语 1-2-3\/wj2", 15, "xlWK3\/15\/Lotus 1-2-3 格式\/wk3", 16, "xlExcel2\/16\/Excel 版本 2.0 (1987)\/xls", 17, "xlTemplate\/17\/Excel 模板格式\/xlt", 18, "xlAddIn\/18\/Microsoft Excel 97-2003 外接程序\/xla", _
                 19, "xlTextMac\/19\/Macintosh 文本\/txt", 20, "xlTextWindows\/20\/Windows 文本\/txt", 21, "xlTextMSDOS\/21\/MSDOS 文本\/txt", 22, "xlCSVMac\/22\/Macintosh CSV\/csv", 23, "xlCSVWindows\/23\/Windows CSV\/csv", _
                 24, "xlCSVMSDOS\/24\/MSDOS CSV\/csv", 25, "xlIntlMacro\/25\/国际宏\/无文件扩展名", 26, "xlIntlAddIn\/26\/国际外接程序\/无文件扩展名", 27, "xlExcel2FarEast\/27\/Excel 版本 2.0 中文 (1987)\/xls", 28, "xlWorks2FarEast\/28\/Microsoft Works 2.0 两端对齐格式\/wks", _
                 29, "xlExcel3\/29\/Excel 版本 3.0 (1990)\/xls", 30, "xlWK1FMT\/30\/Lotus 1-2-3 格式\/wk1", 31, "xlWK1ALL\/31\/Lotus 1-2-3 格式\/wk1", 32, "xlWK3FM3\/32\/Lotus 1-2-3 格式\/wk3", 33, "xlExcel4\/33\/Excel 版本 4.0 (1992)\/xls", _
                 34, "xlWQ1\/34\/Quattro Pro 格式\/wq1", 35, "xlExcel4Workbook\/35\/Excel 版本 4.0 工作簿格式 (1992)\/xlw", 36, "xlTextPrinter\/36\/打印机文本\/prn", 38, "xlWK4\/38\/Lotus 1-2-3 格式\/wk4", 39, "xlExcel5\/39\/Excel 版本 5.0 (1994)\/xls", _
                 40, "xlWJ3\/40\/日语 1-2-3\/wj3", 41, "xlWJ3FJ3\/41\/日语 1-2-3 格式\/wj3", 42, "xlUnicodeText\/42\/Unicode 文本\/无文件扩展名;*.txt", 43, "xlExcel9795\/43\/Excel 版本 95 和 97\/xls", 44, "xlHtml\/44\/HTML 格式\/.htm;.html", _
                 45, "xlWebArchive\/45\/Web 档案\/.mh;.mhtml", 46, "xlXMLSpreadsheet\/46\/XML 电子表格\/xml", 50, "xlExcel12\/50\/Excel 二进制工作簿\/xlsb", 51, "xlOpenXMLWorkbook\/51\/Open XML 工作簿\/xlsx", 52, "xlOpenXMLWorkbookMacroEnabled\/52\/启用 Open XML 工作簿宏\/xlsm", _
                 53, "xlOpenXMLTemplateMacroEnabled\/53\/启用 Open XML 模板宏\/xltm", 54, "xlOpenXMLTemplate\/54\/Open XML 模板\/xltx", 55, "xlOpenXMLAddIn\/55\/Open XML 外接程序\/xlam", 56, "xlExcel8\/56\/Excel 97-2003 工作簿\/xls", 60, "xlOpenDocumentSpreadsheet\/60\/OpenDocument 电子表格\/ods", _
                 61, "xlOpenXMLStrictWorkbook\/61\/Strict Open XML 文件\/xlsx", "&H3D", "xlOpenXMLStrictWorkbook\/&H3D\/Strict Open XML 文件\/xlsx", 62, "xlCSVUTF8\/62\/UTF8 CSV\/csv")
    For x = LBound(arr) To UBound(arr) Step 2
        If st  = cstr(arr(x)) Then isworkbooks = Split(arr(x + 1), "\/"): Exit Function
    Next
End Function


回复

使用道具 举报

发表于 2021-6-28 16:43 | 显示全部楼层
本帖最后由 roserice 于 2021-6-28 16:45 编辑

实在不行就用vba代码,可能是笨办法,可行,我试了,看附件里图片是你的数据吧,我没在wps里做Sub aa()
Workbooks("2.xls").Sheets("库存表").Activate
Workbooks("2.xls").Sheets("库存表").UsedRange.Select
Workbooks("2.xls").Sheets("库存表").Copy
Workbooks("excel1.xlsm").Sheets(3).Range("a1").Activate
Workbooks("excel1.xlsm").Sheets(1).Paste Destination:=Worksheets("Sheet1").Range("a1:a2")
End Sub



2021-06-28_163516.jpg
回复

使用道具 举报

发表于 2021-6-28 17:22 | 显示全部楼层
0126 发表于 2021-6-28 16:23
For Each wbk In Application.Workbooks
   If LCase(Right(wbk.name, 4)) = "xlsx" Then wbk.SaveAs wbk. ...

取得 ActiveWorkbook.FileFormat 後
對照 https://docs.microsoft.com/zh-cn ... /excel.xlfileformat

祝順心,南無阿彌陀佛!


评分

参与人数 1学分 +2 收起 理由
0126 + 2 学习了

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2021-6-29 15:39 | 显示全部楼层
roserice 发表于 2021-6-28 16:43
实在不行就用vba代码,可能是笨办法,可行,我试了,看附件里图片是你的数据吧,我没在wps里做Sub aa()
Workboo ...

呃,我自己也试了,直接用WORKSHEET的COPY方法就可以把数据搞出来了,我只是想知道为什么会这样,还有很多表打开就像这样中招了,没法防
回复

使用道具 举报

 楼主| 发表于 2021-6-29 15:44 | 显示全部楼层
0126 发表于 2021-6-28 16:23
For Each wbk In Application.Workbooks
   If LCase(Right(wbk.name, 4)) = "xlsx" Then wbk.SaveAs wbk. ...

大致看懂了,但是不知道为何会出现此情况,之前一直都没事的呀,不知道是中了病毒?还是什么东东?我在VBE中thisworkbook属性里,把isaddin的参数改成了false就可以显示了,然后试着在工作簿事件中加入 ThisWorkbook.IsAddin = False,然后就正常了。但我都是默认保存xlsx格式的呀,怎么也可以直接保存写了代码的文件呢,怀疑是WPS将我的文件另存为一个可以加载宏的格式,但显示的却是xlsx后缀- -
回复

使用道具 举报

发表于 2021-6-29 16:49 | 显示全部楼层
醉里流年 发表于 2021-6-29 15:44
大致看懂了,但是不知道为何会出现此情况,之前一直都没事的呀,不知道是中了病毒?还是什么东东?我在VBE ...

     嗯,没有遇到过这个问题,建议检查一下自己的vba保存代码属性,没有问题的话那就需要找大神远程帮你看看了


回复

使用道具 举报

 楼主| 发表于 2021-6-29 17:00 | 显示全部楼层
0126 发表于 2021-6-29 16:49
嗯,没有遇到过这个问题,建议检查一下自己的vba保存代码属性,没有问题的话那就需要找大神远程帮你 ...

试了几次,另存为xls格式就没事了,只要是打开xlsx格式就有几率变成这样,被当作加载宏打开- -,哪怕我将isaddin属性修改为false,保存后会自动修改为true,下次打开文件又是一样的问题了
回复

使用道具 举报

 楼主| 发表于 2021-6-29 17:03 | 显示全部楼层
cutecpu 发表于 2021-6-28 17:22
取得 ActiveWorkbook.FileFormat 後
對照 https://docs.microsoft.com/zh-cn ... /excel.xlfileformat
...

大师,我在VBE中修改了isaddin属性为false也不行,只要一关闭文件,它就自动修改为true了,然后下次打开还是一样看不到,估计是被当作加载宏加载了- -,有什么办法解决吗
回复

使用道具 举报

发表于 2021-6-29 17:08 | 显示全部楼层
醉里流年 发表于 2021-6-29 17:03
大师,我在VBE中修改了isaddin属性为false也不行,只要一关闭文件,它就自动修改为true了,然后下次打开 ...

把 WPS 移除掉试试
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 18:12 , Processed in 0.312100 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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