excel2010每次写好VBA运行完成之后,保存为xlsm格式。关闭后就打不开了,也不能创建副本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel2010每次写好VBA运行完成之后,保存为xlsm格式。关闭后就打不开了,也不能创建副本?相关的知识,希望对你有一定的参考价值。

新装的正版企业版软件,写了vba以后能正常运行,保存为xlsm格式就打不开了,创建副本有权限也不行,发送微信、QQ、邮件都发不出去,重启电脑后仍然存在问题。请问如何解决?谢谢!

你是通过“文件--另存为.xlsm”这样操作,还是直接改了扩展名?发送不出去是因为被占用,打开任务管理器找到excel关闭进程就可以了。还有个就是换个思路咯,把代码写入模块中,文件不用保存.xlsm也可以保存代码的 参考技术A 是你的硬盘的存储的问题。
存储在人家的地盘了吧?追问

存在我的D盘啊

存在我的D盘啊

使用 Excel VBA 实现复制 粘贴 和保存,并自动运行VBA

请高手帮忙编写一段VBA代码
可以执行以下命令:
在Sheet1里只要按回车键就自动执行复制Sheet1的第4行到500行的所有内容,粘贴到Sheet 2的第4行到500行,并保存。

代码如下,注意代码的位置(详见截图)

Private Sub Worksheet_Activate()
   Application.OnKey "~", "Copy4To500"
   'Application.OnKey "ENTER", "Copy4To500" '小键盘回车键
End Sub
Private Sub Worksheet_Deactivate()
   Application.OnKey "~"
   'Application.OnKey "ENTER"
End Sub
Sub Copy4To500()
   Rows("4:500").Copy Sheet2.Range("A4")
   ThisWorkbook.Save
End Sub

参考技术A 这个超级简单。录制一个宏
按照你需要的操作一步一步的来。然后保存,最后再指定一个快捷键
搞点。
参考技术B

可使用VBA事件。    

A. 将如下代码复制粘贴在sheet1代码中。    

B.回车运行即可。    

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Application.DisplayAlerts = False

On Error Resume Next

Worksheets(1).Rows("4:500").Copy Worksheets(2).Range("4:500")

ActiveWorkbook.Save

Application.DisplayAlerts = True

End Sub

参考技术C 代码复制到sheet1
Sub 复制()
Rows("4:500").Copy Sheets(2).[A4]
Sheets(2).Select
MsgBox "复制完成....."
End Sub
自己指定一个 快捷键即可
参考技术D 用回车键激活,这个有点夸张了。。可以试试用其它键录制宏。回车键即使实现了也会出现很多不比较的麻烦

以上是关于excel2010每次写好VBA运行完成之后,保存为xlsm格式。关闭后就打不开了,也不能创建副本?的主要内容,如果未能解决你的问题,请参考以下文章

Excel 2010 vba 复制选择工作表,保存并关闭两个工作簿

Excel 2010 VBA:使用单元格中的值保存文件以确定路径和文件名

如何使用vba在excel2010中将保存类型从excel工作簿更改为excel 97-2003?

使用 Excel VBA 自动合并邮件

当关闭文档是excel vba为啥宏代码自动消失

为什么单击保存按钮时我的vba用户表单崩溃?