0

我有这段代码,一切正常,但我不知道如何让它保留原始文件名:

Set app = CreateObject("Excel.Application")
app.Visible = False
app.DisplayAlerts = False

Set fso = CreateObject("Scripting.FileSystemObject")

For Each f In fso.GetFolder("F:\Billing_Common\autoemail").Files
  If LCase(fso.GetExtensionName(f)) = "xlsx" Then
    Set wb = app.Workbooks.Open(f.Path)
filename = f
wb.SaveAs "F:\Billing_Common\autoemail\filename.xls", -4143
wb.Close SaveChanges=True

  End if
Next

app.Quit
Set app = Nothing
Set fso = Nothing

任何帮助将非常感激!

谢谢

4

1 回答 1

1

你的意思是你想保留基本名称而只是更改扩展名?可以这样实现:

newname = fso.BuildPath(wb.Path, fso.GetBaseName(wb.Name) & ".xls")
wb.SaveAs newname, -4143

如果你以后想删除旧文件,你可以这样做:

f.Delete True

为了安全起见,我会在关闭工作簿后执行此操作。


顺便说一句,我已经告诉过你了

wb.Close SaveChanges=True

不像你认为的那样做。只用

wb.Close True

没有参数名称。

于 2013-07-05T11:51:53.833 回答