我正在嘗試編寫VBA代碼,它將讀取給定的CSV文件名並在寫入另一個CSV文件之前對數據進行一些更改。打開並讀取不含表單名稱的CSV文件
Set oSht_Input = Workbooks.Open(file_Path, UpdateLinks:=False).Worksheets(extractDataFile.convertedSheetName)
lastRow = oSht_Input.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For Rows = 2 To lastRow
extractedDataFileRecord.Variable1 = CStr(oSht_Input.Cells(Rows, 1))
.... code continues
此代碼通常工作正常。
但是,缺點是CSV文件只會將文件名稱複製到表格名稱中。因此,我可以安全地假定變量convertedSheetName與提供的文件名相同。
如果文件名太短而無法複製到工作表名稱中,此代碼將起作用。但是,如果文件名太長,文件名將在表名中截斷,因此我無法獲得設置Worksheet對象的正確引用。
有沒有更好的方法來真正獲取圖紙參考,以便我可以讀取表格中的單元格值?
如果您正在使用'Workbooks.Open',那麼這個過程本質上是一個文件►打開,而不是導入到現有的或新的工作表。以這種方式打開CSV時,只有一個工作表。使用'Sheets(1)'工作表對象參考或'Sheet1'工作表代碼名稱來引用它。 – Jeeped 2015-04-01 04:21:35
@Jeeped謝謝!對不起,我對VBA有點新鮮,所以編輯代碼到Workbooks.Open()。表(1)? – lyk 2015-04-01 04:25:26
CSV只是一個文本文件。您無需將其導入到Excel中即可運行。您可以使用Excel宏來直接更改文本文件。 – 2015-04-01 06:59:52