【问题标题】:Split file in excel for avoiding row limit在excel中拆分文件以避免行限制
【发布时间】:2016-07-31 13:00:27
【问题描述】:

我的 .all 文件超过了 excel 规定的 1048576 行的限制。

我正在使用此代码:

Sub open()
book1 = ActiveWorkbook.Name
file1 = Application.GetOpenFilename("ALL Files (*.all), *.all")
Worksheets("res").Range("K1").Value = file1
Workbooks.OpenText file1, origin:=xlWindows, startrow:=1, DataType:=xlTextFormat
del = ActiveWorkbook.Name
ActiveSheet.Copy before:=Workbooks(book1).Sheets(1)
Workbooks(del).Close False
Sheets(1).Activate
ActiveSheet.Name = "acti"
End Sub

但由于此限制,此代码不适用于长文件。我的想法是复制原始 .all 文件,然后将此副本拆分为限制为 1048576 行的文件,将每个拆分后的文件复制到一个单独的工作表中,最后删除此副本。

我是 vba 的新手……有什么帮助编写代码吗?

非常感谢。

【问题讨论】:

  • 创建一个新工作表而不是创建一个新的 excel 文件本身,因为限制在工作表上,而不是在 excel 文件本身上。

标签: excel vba split row


【解决方案1】:

您可以使用以下代码将文件拆分为单独的部分。

Public Sub Split_wb()

Dim i As Integer, arr As Variant, wb As Variant, ws_source As Worksheet

Set ws_source = ActiveSheet

For i = 1 To 5
    arr = ws_source.Range("A" & i * 1000 - 999 & ":T" & i * 1000)

    Set wb = Workbooks.Add
    wb.Sheets(1).Range("A1").Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr
    Set arr = Nothing
Next

End Sub

另外,如果 Excel 无法满足您的需求,我建议您考虑使用 Access 或 SQL Server。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-13
    • 2012-07-04
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2011-01-09
    相关资源
    最近更新 更多