将文件另存为CSV,然后以不同的格式保存文件

时间:2015-10-20 01:05:37

标签: excel vba excel-vba csv

修改

我想我已经找到了这个问题,它在BeforeSave函数中创建了一个无限循环,这就是为什么它在模块中工作而不是ThisWorkbook。我想在BeforeSave函数中使用它,有没有人有解决方法?

修改

我正在尝试运行将文件另存为CSV的代码,然后以不同的格式保存文件(启用Excel宏的工作簿)。这样访问将始终能够看到更新的CSV文件,但在保存CSV后将保存为启用宏的工作簿。单步执行代码没有问题,但是当我完全运行宏时它会崩溃。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As 
Boolean)

Application.DisplayAlerts = False

ChDir "C:\Users\nmorrow\Desktop\Winery Projects\CSV"
ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\nmorrow\Desktop\Winery Projects\CSV\Site Water Readings
TEST.csv", _
FileFormat:=xlCSV, CreateBackup:=False


ChDir "C:\Users\nmorrow\Desktop\Winery Projects\CSV"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\nmorrow\Desktop\Winery Projects\CSV\Site Water Readings 
TEST.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

application.displayalerts = true


End Sub

关于这个的任何想法,还是仅仅是我的机器?

或者,如果还有其他方法可以保存为CSV文件,然后在保存后将其返回到Excel工作簿?

1 个答案:

答案 0 :(得分:0)

(我是新来的,所以我不确定这应该是评论(我无法创作)还是答案。)

在这之前我做过类似的事情:

  • 将活动工作表(要保存为CSV的数据)复制到新工作簿
  • 将新工作簿另存为CSV
  • 返回启用宏的工作簿并另存为excel工作簿

我无法访问我的代码,但可以在以后提供。

相关问题