为什么在excel中保存程序时,总是显示无法在未启用宏的工作簿中保存,请另选一个启用宏的文件保存?

如何在工作表中执行不了以下程序,请高手解疑!!
Private Sub worksheet_selectchange(ByVal Target As Range)
i = 2
Do While Sheets("职务").cell(i, l) <> ""
zw = zw & "," & Sheets("职务").Cells(i, 1)
i = i + 1
Loop
zw = Mid(zw, 2)
Select Case Target.Column
Case 1
Target.NumberFormatLocal = "@"
Case 3
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula:="男,女"
Case 4
Target.Validation.Delete
targer.Validation.Add xlValidateList, Formula:=zw
End Select
End Sub

你好:
2007及以上版本已经把宏工作薄和普通的工作薄进行了区分,含有宏的工作薄,不能保存为后缀名为。xlsx的工作薄
一般可以是用.xlsm,作为后缀名保存
知识点:
1、2003版本,未对普通和宏工作薄进去区分,可以正常保存
2、2007及以上版本,进行区分后,如果对含有宏的工作薄用普通文档进行保存,宏将会丢失,请务必小心谨慎
一旦丢失,无法找回!追问

您好,我还想问一下为什么在工作表中执行不了我补充问题中的程序!!

追答

因为你的事件代码写错了
没有selectchange 事件
事件必须严格按照要求写,不然无法触发!
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

追问

按照你的指示,修改后执行,总是出现这个窗口,是什么原因?

追答

请先了解一下VBA一些基础常识
百度学习一些VBA事件
事件是不需要人工执行的,达到条件自动执行!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-10
表格没开启宏功能
vb程序excel会默认为宏模式
第2个回答  2014-12-10
直接另存为03版本就行了
第3个回答  2014-12-10
直接另存版本
相似回答