【200分】EXCEL中VBA关于宏的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:59:13
假设C11单元格内的数字为X,D1单元格的数字为Y,我希望保存文件时文件名自动存为“X空格Y”

代码如下:

Sub Macro1()

str1 = CStr(Range("Sheet1!C11").Value)
str2 = CStr(Range("Sheet1!D1").Value)
ActiveWorkbook.SaveCopyAs str1 + " " + str2 + ".xls"

End Sub

然后,我需要在用这个VBA自动生成的文件“X Y.xls”中不带有宏,这个改怎么在原来代码的基础上再改?

情给出完整代码,200等着第一个给出可用代码的回答者!
待验证能使用后立即给分!

拿分来了,借着楼主的问题我也好好学习了一下.
以上代码从很多地方查到的,可以删除模块,窗体,以及工作簿工作表模块中的VBA代码.
工作簿事件,放进Thisworkbook里面。
工作簿保存的时候自动删除代码和模块。
楼主应该也是高手,我也不多解释了(主要我还一知半解着呢,呵呵)。如果不想用Workbook_BeforeClose,也可以用
Workbook_BeforeSave事件

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next

'这里放你的命名代码吧

With ActiveWorkbook.VBProject
For i = .VBComponents.Count To 0 Step -1
.VBComponents(i).CodeModule.DeleteLines 1, .VBComponents(i).CodeModule.CountOfLines
.VBComponents.Remove .VBComponents(i)
Next
End With
End Sub
*********
如果只是Alt+F8不显示宏的话,
你的宏前面加上Private这个宏就不会显示在宏列表中了。

Private Sub Macro1()
str1 = CStr(Range("Sheet1!C11").Value)
str2 = CStr(Range("Sheet1!D1").Value)
ActiveWorkbook.SaveCopyAs str1 + " " + str2 + ".xls"
End Sub

一楼的代码是对的!强