导出多个范围到一个txt文件

我需要将多个范围从不同的工作表导入到单个文本文件中,我希望单元格范围可以一个接一个地追加。 目前,我正在使用这个代码,完全适用于一个范围一个工作表我需要修改这个,使其与更多的范围工作?

我想添加的范例范围

Sheet1 A2:E50 Sheet2 A2:F60 Sheet4 A2:C45 

当前的代码

 Sub Export() Dim r As Range, c As Range Dim sTemp As String Open Workbooks("Test.xlsm").Path & "\Test.SQL" For Output As #1 For Each r In Worksheets("SQL1").Range("A1:D50").Rows sTemp = "" For Each c In r.Cells sTemp = sTemp & c.Text & Chr(9) Next c 'Get rid of trailing tabs While Right(sTemp, 1) = Chr(9) sTemp = Left(sTemp, Len(sTemp) - 1) Wend Print #1, sTemp Next r Close #1 End Sub 

就像我在上面的评论中提到的那样,这是将这些范围导出到文本文件的最快方法。 无需循环…

未经testing

 Dim Thiswb As Workbook, thatWb As Workbook Sub Sample() Set Thiswb = ThisWorkbook Set thatWb = Workbooks.Add CopyRange Thiswb.Sheets("Sheet1"), Thiswb.Sheets("Sheet1").Range("A1:E10000") CopyRange Thiswb.Sheets("Sheet2"), Thiswb.Sheets("Sheet2").Range("A1:F10000") CopyRange Thiswb.Sheets("Sheet3"), Thiswb.Sheets("Sheet3").Range("A1:C10000") Application.DisplayAlerts = False thatWb.SaveAs "C:\Temp.csv", xlCSV Application.DisplayAlerts = True End Sub Sub CopyRange(ws As Worksheet, rng As Range) Dim lRow As Long lRow = thatWb.Sheets(1).Range("A" & thatWb.Sheets(1).Rows.Count).End(xlUp).Row + 1 rng.Copy thatWb.Sheets(1).Range("A" & lRow) End Sub 

从评论后续

Siddharth这是有用的,但不会为我工作,因为我上面的代码插入到SQL和JAVA,你能告诉我如何修改我的上面的代码执行多个范围在不同的工作表上,不pipe这是最好的方法,不幸的是我不是很良好的VBA 🙁 – 风车5分钟前

这是你正在尝试? ( 未经testing

 Sub Sample() Dim Thiswb As Workbook Set Thiswb = ThisWorkbook Export Thiswb.Sheets("Sheet1").Range("A2:E50") Export Thiswb.Sheets("Sheet2").Range("A2:F60") Export Thiswb.Sheets("Sheet4").Range("A2:C45") End Sub Sub Export(rng As Range) Dim r As Range, c As Range Dim sTemp As String '~~> Use Append instead of Output Open Workbooks("Test.xlsm").Path & "\Test.SQL" For Append As #1 For Each r In rng.Rows sTemp = "" For Each c In r.Cells sTemp = sTemp & c.Text & Chr(9) Next c 'Get rid of trailing tabs While Right(sTemp, 1) = Chr(9) sTemp = Left(sTemp, Len(sTemp) - 1) Wend Print #1, sTemp Next r Close #1 End Sub