对宏没有做太多,但有些。我搜索并发现了一些类似于我需要做的事情,但并不确切,并想知道是否有人可以提供帮助 为了工作,我有一个包含多个工作表的excel工作簿,并且我创建了一个工作簿并保存为CSV,因为我们使用的程序只接受txt或csv格式,因此每次我们要导入数据时都要保存。我基本上希望有一个数据表能够自动保存在文件夹中的csv文件中,该文件将在没有提示的情况下保存,因此程序可以自动从中导入数据。
感谢您的帮助
答案 0 :(得分:1)
最简单的解决方案是使用Worksheet.Copy:
如果未指定“之前”或“之后”,Microsoft Excel将创建一个新工作簿,其中包含复制的工作表对象,其中包含复制的Worksheet对象。新创建的工作簿包含Application.ActiveWorkbook Property(Excel)属性并包含单个工作表。
单个工作表保留源工作表的Worksheet.Name属性(Excel)和Worksheet.CodeName属性(Excel)属性。
如果复制的工作表在VBA项目中保存了工作表代码表,那么它也会被带入新工作簿。
尝试:
Option Explicit
Sub Main()
' Call your Sub
CopySheet2CSV ThisWorkbook.Sheets("Tabelle1")
End Sub
Sub CopySheet2CSV(ws As Worksheet)
ws.Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\b036081\NoBackupData\" & ws.Name & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close Savechanges:=False
End Sub
利用.Copy
方便地将ActiveWorkbook
设置为包含单张工作表的新创建工作簿的事实。
将其另存为csv,然后关闭它,从而返回源工作表。
注意:请勿明确关闭所有提示。相反,省略通过在保存时设置CreateBackup:=False
并在关闭csv-workbook时设置Savechanges:=False
来手动执行此操作时获得的两个标准提示。
这样,在文件存在或出现错误的情况下,仍会提示您。