解决“打开Excel文件时会同时打开一个名为Sheet1的未保存空白工作簿”的问题

问题描述

在一次偶然的请款下,我发现在打开本机上的所有Excel文件时,都会自动打开一个名为“Sheet1”的未保存的空白工作簿,虽然不影响原有工作簿的使用,但是每次都要手动关闭空白的工作簿,让人很恼火。如果是打开Excel应用程序,却不会有这种情况,匪夷所思。整理了一下我处理这个问题的过程:


1.卸载重装Office,这个绝对不推荐,浪费时间不说,重装之后可能问题依旧存在。


2.可能是Excel宏文件的问题导致,需要找到C盘下的“个人宏工作簿”目录,删除下面的宏文件PERSONAL.XLSB,我本机目录为C:\Users\XXX\AppData\Roaming\Microsoft\Excel\XLSTART,但是很可惜我没找到有这个文件,所以这个方法失败了。


3.com加载项设置问题,打开 开发工具 -> com加载项,在可用的加载项中取消勾选“MySQL For Excel”,点击确定。


这里写图片描述

我的问题是通过第三种方法解决的,可能和我安装MySQL数据库时的配置有关(只是猜测,因为问题的出现时间和我安装MySQL数据库的时间差不多一致),希望后两种方法能帮到碰到这个问题的人【参考原贴讨论

非常抱歉给您带来的困扰。请尝试以下修正后的代码: ```vba Sub RemoveNonChineseCharacters() Dim cell As Range Dim nonChineseRegex As Object Dim newCell As Range ' 创建正则达式对象 Set nonChineseRegex = CreateObject("VBScript.RegExp") ' 设置正则达模式,匹配非汉字字符 nonChineseRegex.Pattern = "[^\u4E00-\u9FA5]" ' 创建空白区域用于存储处理结果 Set newCell = Sheets.Add().Range("A1") ' 循环遍历每个单元格,删除非汉字字符 For Each cell In ActiveSheet.UsedRange Dim newValue As String newValue = nonChineseRegex.Replace(cell.Value, "") ' 只将包含汉字的单元格值复制到新的工作中 If newValue <> "" Then newCell.Value = newValue Set newCell = newCell.Offset(1) ' 移动到下一行 End If Next cell newCell.EntireColumn.AutoFit ' 自动调整列宽 ' 清除正则达式对象 Set nonChineseRegex = Nothing End Sub ``` 请按照以下步骤重新执行该: 1. 打开Excel文件,并确保要处理的数据位于活动工作中。 2. 按下`Alt + F11`打开VBA编辑器。 3. 在VBA编辑器中,插入一个新的模块(如果没有已存在的模块)。 4. 将上述修正后的代码复制粘贴到新模块中。 5. 关闭VBA编辑器。 6. 运行:按下`Alt + F8`打开对话框,选择`RemoveNonChineseCharacters`,然后点击“运行”。 此将遍历活动工作中的所有单元格,并删除其中的非汉字字符。只有包含汉字的单元格值才会复制到新的工作中。新的工作将在原有工作的右侧创建,并自动调整列宽以适应数据。希望这次可以成功帮到您!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值