我正在尝试编写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