使用VB将Excel行转换为文件

有点VB经验不足,所以我希望有人可以帮助什么感觉像一个简单的问题!

实质上,我需要为Excel电子表格的每一行生成一个文本文件(扩展名为.exp)。 但是,列数和行数是事先未知的,格式需要相当具体。 例如,给出以下Excel格式:

 Col1 |  COL2
 1 |  2
 8 |  9
 17 |  46

我希望生成3个文件。 第一个文件将如下所示:

  Col1 1
 Col2 2

第二:

 Col1 8
 Col2 9

第三:

 Col1 17
 Col2 46

有没有简单的方法来使用VB做到这一点?

自从我玩VBA以来已经有一段时间了,但是应该这样做:

 Dim fso As New FileSystemObject Dim stream As TextStream Dim iLoop As Integer iLoop = 1 While Sheets("Sheet1").Range("A" & iLoop) <> "" Set stream = fso.CreateTextFile("C:\Row" & iLoop & ".txt", True) stream.WriteLine "Col1 " & Sheets("Sheet1").Range("A" & iLoop) stream.WriteLine "Col2 " & Sheets("Sheet1").Range("B" & iLoop) stream.Close iLoop = iLoop + 1 Wend 

可能需要一些调整,我没有testing这个,但这是基本的想法。

我从来没有使用Excel,也没有一个副本来testing任何代码,所以忍受着我。

VBScript的基本思想(独立的.vbs文件)…

 'connect to Excel Set XLApp = CreateObject("Excel.Application") XLApp.Visible = True 'open the file XLApp.DisplayAlerts = False Set XLBook = XLApp.WorkBooks.Open("c:\path_to\my.xls") XLApp.DisplayAlerts = True 'if you know the Worksheet name: sSheetName = "MySheetName" Set XLSheet = XLBook.Sheets.Item(sSheetName) 'else use index: Set XLSheet = XLBook.Worksheets(1) 'or if you want to process all sheets: For Iter = 1 To XLBook.Worksheets.Count Set XLSheet = XLBook.Worksheets(Iter) ... Next 'you can use XLSheet.Columns.Count to iterate 'or if the columns names are known: Set Col1 = XLSheet.Columns("Col1") Set Col2 = XLSheet.Columns("Col2") 'or get Range: Set Range = XLSheet.Columns("Col1:Col2") 'same as above: Set Range = XLSheet.Range("Col1:Col2") 'vbs FileSystemObject: Set fso = CreateObject("Scripting.FileSystemObject") iLoop = 1 'to enumerate file names intRow = 2 '?... not sure about this Do While Range.Cells(intRow,1).Value <> "" Set stream = fso.CreateTextFile("Row" & iLoop & ".exp", True) stream.WriteLine "Col1 " & Range.Cells(intRow, 1).Value stream.WriteLine "Col2 " & Range.Cells(intRow, 2).Value stream.Close iLoop = iLoop + 1 intRow = intRow + 1 Loop 'XLBook.Save XLBook.Close XLApp.Quit Set stream = Nothing Set fso = Nothing Set Range = Nothing Set XLSheet = Nothing Set XLBook = Nothing Set XLApp = Nothing