excel 2010里加入vba怎么保存不了

lubin520520zhuwen 2013-01-29 11:56:17
我新建了一个xlsx的excel 文件,
在file-option--trust center--macro settings 里面选了enable all macros 和trust access to the vba project object model

然后按alt+F11
在Thisworkbook里面加了如下代码,用于保存时命名
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim Name As String

With ThisWorkbook

Name = Worksheets("Sheet1").Cells(3, 5).Value & ".xlsx"

.SaveCopyAs Name

End With

End Sub

但点save后提示

the following features cannot be saved in macro-free workbooks
vb project
to save a file with these features click no and then choose a macro-enabled file type in the file type list.
to continue saving as a macro-free workbook, click yes

...全文
3172 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mnxm 2013-01-29
  • 打赏
  • 举报
回复
点了保存后它默认弹出另存为窗口 的原因有两种可能: 1.你所打开的文件是只读的 2.你所打开的文件是未启用宏的工作薄xlsx,而你使用了宏,所以提示需要你保存为xlsm 以上弹出窗口的文件名filename我不知道通过代码怎么写入 以上是所打开excel本身的保存所产生的情况 而你又为 Workbook_BeforeSave添加了其他的保存代码.SaveCopyAs .SaveCopyAs .Path & "/" & Name 这句代码出问题有两种可能 1. 你没有Path 路径下写入操作的权限 2. Name文件名重名了 我认为你所说的弹出的另存为窗口不是由于代码的原因 你的代码已经完成了一个excel的保存操作 本身打卡的excel也执行了一个保存操作 不知道我说的对不对
lubin520520zhuwen 2013-01-29
  • 打赏
  • 举报
回复
当你点击Save As后弹出来的窗口不是有个file name, 默认可能是这样的New Microsoft Excel Worksheet.xlsx,用户可以改变它,如果我想使New Microsoft Excel Worksheet.xlsx默认显示成我单元格里面的内容,如 ContentValueFromExcel.xlsx,那就不需要手动再去输入文件名了。“ContentValueFromExcel”这个就是Worksheets("Sheet1").Cells(3, 5)里取的值。 因为我是在moss里Create document library,模板是xlsm,点了保存后它默认弹出另存为窗口的。 用 .SaveCopyAs .Path & "/" & Name的话share point里就不适用了
mnxm 2013-01-29
  • 打赏
  • 举报
回复
引用 6 楼 lubin520520zhuwen 的回复:
差不多了,谢谢。 不过".xlsx"这边改成".xlsm"才能用,是不是必须保存成xlsm才行? 现在是点击保存后保存了一个文件。如果我想点击另存为,命名弹出的保存窗口里面的file name,可以吗,怎么操作?
对 要想保存的文件里也有这个工作薄里的宏的话需要保存xlsm才行 点击另存为,命名弹出的保存窗口里面的file name 这句话是什么意思 另存为本身就有弹出的命名窗口啊 难道你想将Cells(3, 5)里面的文件名传递给 点击另存为弹出的窗口?
lubin520520zhuwen 2013-01-29
  • 打赏
  • 举报
回复
差不多了,谢谢。 不过".xlsx"这边改成".xlsm"才能用,是不是必须保存成xlsm才行? 现在是点击保存后保存了一个文件。如果我想点击另存为,命名弹出的保存窗口里面的file name,可以吗,怎么操作?
mnxm 2013-01-29
  • 打赏
  • 举报
回复
引用 2 楼 lubin520520zhuwen 的回复:
楼上的 ,现在我用 xlsm能保存了,但是我的代码貌似没执行,咋回事?我就是想保存时弹出来的命名文件的窗口里面的名字能控制
现在行不行了?
mnxm 2013-01-29
  • 打赏
  • 举报
回复
代码改成这样

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Name As String
  
   With ThisWorkbook
  
     Name = Worksheets("Sheet1").Cells(3, 5).Value & ".xlsx"

     .SaveCopyAs .Path & "/" & Name
  
   End With
End Sub
mnxm 2013-01-29
  • 打赏
  • 举报
回复
lubin520520zhuwen 2013-01-29
  • 打赏
  • 举报
回复
楼上的 ,现在我用 xlsm能保存了,但是我的代码貌似没执行,咋回事?我就是想保存时弹出来的命名文件的窗口里面的名字能控制
mnxm 2013-01-29
  • 打赏
  • 举报
回复

EXCEL 启用宏的工作薄 必须保存为.xlsm 宏才有效 如果保存为.xlsx 宏是无法使用的
请查看您excel表格的的拓展名

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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