Excel宏(单独数据)

Excel宏(单独数据),excel,vba,Excel,Vba,我有一个excel宏,可以将每列文件分开并保存。我的问题是,我无法使它处理大量行(60000行) 我应该在下面的VBA代码中更改什么才能使其正常工作 Dim MyFile, NewFile As Variant Dim sort_data As String Dim last_row, tfiles, start_row, ktr As Integer 'Capture errors On Error GoTo ErrorHandler 'Check for

我有一个excel宏,可以将每列文件分开并保存。我的问题是,我无法使它处理大量行(60000行)

我应该在下面的VBA代码中更改什么才能使其正常工作

 Dim MyFile, NewFile As Variant
  Dim sort_data As String
  Dim last_row, tfiles, start_row, ktr As Integer
    
  'Capture errors
  On Error GoTo ErrorHandler
  
  'Check for complete data
  If (Separate.file_open.Value = False And Separate.Filename _
   = "") Or Separate.first = "" Or Separate.last = "" Or _
   Separate.sort = "" Or Separate.left_column = "" Or _
   Separate.right = "" Then
    MsgBox "Insufficient data.", 16, "Warning!"
    Exit Sub
  End If
  
  'Turn application alerts off
  Application.DisplayAlerts = False
  
  'Open filename if necessary
  If Separate.file_open.Value = False Then
    Workbooks.Open Separate.Filename
  End If
  
  'Get current workbook name
  MyFile = left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) _
           - 4)
  
  'Get last row of data
  For last_row = Separate.last + 1 To 1048576
    If Range(Separate.sort & last_row).Value = "" Then
      Exit For
    End If
  Next last_row
  
  
  'Sort data
  Range(Separate.left_column & Separate.last, Separate.right & last_row).Select
  Selection.sort Key1:=Range(Separate.sort & Separate.last + 1), Order1:=xlAscending, Header:=True, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

问题的原因是:

Dim last_row, tfiles, start_row, ktr As Integer
脚本中提到的整数,最大值为32767。您可以使用
Long
而不是
Integer


    Dim last_row, tfiles, start_row, ktr As Long


2147483647,大于excel最大行数