求:用VBA批量删除Excel(多个)文件中的公式,保留数值。

有多个excel文件,求VBA代码批量删除Excel文件中的公式,只保留数值。另外如何用VBA批量删除多个文件中指定的工作表(如要删除的工作表名为"数据" 、"单位"),分不多了只有10分,望哪位大大指教,先谢过了!
目前有一个删除单个excel工作薄的代码,但是不能执行多个工作薄任务
Sub macro1()
Dim sh As Worksheet
For Each sh In Sheets
sh.UsedRange = sh.UsedRange.Value
Next
End Sub
本人刚接触VBA,了解的不多,那位大大能给改一下吗?

第一步:
1、插入一个用户窗体,画一个列表框Ldir,用dir()函数取得所有预处理文档的名称
Dim Mypath As String, Myname As String
Mypath = InputBox("输入路径:") '或者画一个文本框名字为Tpath,Mypath = Tpath.text
Myname = Dir(Mypath & "*.xls", vbDirectory) '产生目录
Do While Myname <> ""
Ldir.Additem Myname
Myname = Dir '逐个获取目录
Loop
这样就在列表框中获得了文件名,在此基础上循环。
2、接着Dim xlbook As New Excel.Workbook '定义
for '循环Ldir的文件
Set xlbook = Application.Workbooks.Open("") '打开 路径 & Ldir.list……
xlbook.Worksheets(1).Range("A1:Z50").Select '选择区域,Worksheets(1)还可以用for循环
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False '选择性粘贴
xlbook.Close SaveChanges:=True '关闭保存
Next
考研临近,一寸光阴一寸金,还望楼主自己多琢磨,我qq848555411
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-30
这是单个文件的,要多个文件只需在前面加上打开文件的部分就可以了。
Sub b()
cnt = ActiveWorkbook.Worksheets.Count
For i = 1 To cnt
Worksheets(i).Select
With ActiveSheet.Cells
.Copy
.PasteSpecial _
Paste:=xlPasteValues
End With
Next
End Sub
第2个回答  2010-11-29
删除公式可用:编辑--定位--定位条件--公式,这样就可以选中有公式的单元格,右击,复制,选择性粘贴,数值就行了。
删除工作表可用二楼的办法
第3个回答  2010-11-30
比如 b列 复制 a列 但不想要公式
columns("b:b").copy columns("a:a")
columns("b:b").ClearFormats
先复制了a列 然后把公式删掉
相似回答