-2
是否存在代码来保存每小时从sheet1中的A1:B10到CSV文件的数据?将数据从Excel工作表自动保存到CSV文件的代码
是否存在代码来保存每小时从sheet1中的A1:B10到CSV文件的数据?将数据从Excel工作表自动保存到CSV文件的代码
虽然这可以在许多不同的方式来完成,这是我会怎么做:
1)增加以下子到一个新的文件。让我们把它称为“auto.xlsb”
Sub SaveRangeToCSV()
Dim rng As Range
Dim originWB As Workbook
Dim originWS As Worksheet
Dim newBook As Workbook
Dim newBookWS As Worksheet
'Open the file you want to copy the range from
Set originWB = Workbooks.Open("path_to_file_that_contains_the_range_you_want_to_copy.xlsx")
Set originWS = ThisWorkbook.Sheets("name_of_the_sheet_where_the_range_is")
Set rng = originWS.Range("A1:B10")
'Add new workbook (csv file)
Workbooks.Add
Set newBook = ActiveWorkbook
Set newBookWS = newBook.Sheets(1)
'Copy range from origin to destination (csv file)
rng.Copy Destination:=newBookWS.Range("A1")
'Save csv file
newBook.SaveAs Filename:=ThisWorkbook.Path & "\output.csv"
End Sub
如果你想避免output.csv每10分钟被改写,你可以,例如,当前日期时间添加到文件名是这样的:
'Save csv file
newBook.SaveAs Filename:=ThisWorkbook.Path & "\output_" & Replace(Replace(Replace(Now, "/", ""), ":", ""), " ", "") & ".csv"
2)添加该代码Workbook_Open子(点击的ThisWorkbook片在VBA IDE,并选择工作簿,然后从下拉在auto.xlsb开放),并保存:
Private Sub Workbook_Open()
Call Module1.SaveRangeToCSV
End Sub
每次双人间单击打开fi le,SaveRangeToCSV将被触发,并因此创建csv。
3)自动执行这个文件真的取决于你的喜好和你正在操作的操作系统。我假设你在Windows上,所以最简单的方法是在Windows的Task Scheduler中创建一个任务,每10分钟运行一次“auto.xlsb”。
我希望这会有所帮助。
我尝试了很多我在互联网上找到的代码,但是我没有成功。我知道你对我的期望越来越高,但我对VBA感到不太舒服。我看到这个,但这不是基于时间的http://stackoverflow.com/questions/37037934/excel-macro-to-export-worksheet-as-csv-file-without-leaving-my-current-excelsh – BertG3
请阅读SO上有关[如何提问](http://stackoverflow.com/help/how-to-ask)的帮助中心文章。 SO不在这里为你做你的工作,只是为了帮助你解决特定的编程错误。单行对于SO来说不是一个恰当的问题。 – Taelsin
好吧,我很抱歉。感谢您的回答。我可以编程,但不能在VBA中编程。我需要fp雇人来帮助我 – BertG3