使用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