VBscript用于将.txt中的数据复制并粘贴到.xlsx

希望创build一个脚本,用于将txt文件中的最后8行复制到Excel文件的单元格A,3中。 这到目前为止我已经放在一起,这是行不通的。 基本上从制表符分隔复制到Excel模板文件。 请帮忙,因为我只用VB编写了非常基本的脚本。

这是我正在与迄今为止….

Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile("C:\test.txt", ForReading) for i = Last 8 lines objTextFile.ReadLine Next strLine = objTextFile.ReadLine Wscript.Echo strLine objTextFile.Close Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("C:\NBP ESP-152 REV F TEMPLATE.xlsx") objExcel.Application.Visible = True objExcel.Workbooks.Add = i objExcel.Cells(a, 3).Value = strLine 

从Aedvald下面的脚本工作,直到它应该粘贴到工作簿的地步:

 Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") ' get number of lines Set objTextFile = objFSO.OpenTextFile("c:\test.txt", ForReading) objTextFile.ReadAll lineCount = objTextFile.Line objTextFile.Close Set objTextFile2 = objFSO.OpenTextFile("c:\test.txt", ForReading) ' skip all lines except 8 last i = 0 while i < lineCount-8 objTextFile2.ReadLine i = i+1 wend ' prepare excel Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open("c:\NBP ESP-152 REV F TEMPLATE.xlsx") objExcel.Application.Visible = True j = 1 ' read last 8 lines Do Until objTextFile2.AtEndOfStream ' read line line = objTextFile2.ReadLine ' write to console ' WScript.Echo line (for testing) ' and into workbook objExcel.Cells(1, j).Value = strLine j=j+1 Loop 

这是我做的工作:

我打开test.txt并循环遍历所有行来计算它们。 然后我再次打开test.txt并循环,直到只剩下8行。 然后,我循环了剩余的8行,同时将它们添加到Excel-Workbook的第一个工作表的单元格中。

更新:要将文本添加到Excel工作表,必须使用工作表的单元格属性: https : //msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-cells-property-excel

====

 Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") ' get number of lines Set objTextFile = objFSO.OpenTextFile("C:\test.txt", ForReading) objTextFile.ReadAll lineCount = objTextFile.Line objTextFile.Close Set objTextFile2 = objFSO.OpenTextFile("C:\test.txt", ForReading) ' skip all lines except 8 last i = 0 while i < lineCount-8 objTextFile2.ReadLine i = i+1 wend ' prepare excel Set objExcel = CreateObject("Excel.Application") objExcel.Application.Visible = True Set objWorkbook = objExcel.Workbooks.Open("C:\NBP ESP-152 REV F TEMPLATE.xlsx") Set objWorksheet = objWorkbook.Worksheets(1) j = 1 ' read last 8 lines Do Until objTextFile2.AtEndOfStream ' read line line = objTextFile2.ReadLine ' write to console ' WScript.Echo line ' (for testing) ' and into workbook objWorksheet.Cells(1, j).Value = line j=j+1 Loop