-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