不能大于 65,536 行的文本文件导入到 Excel 97、 Excel 2000、 Excel 2002 和 Excel 2003

文章翻译 文章翻译
文章编号: 120596 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

在 Windows、 Microsoft Excel 2000、 Microsoft Excel 2002,和 Microsoft Office Excel 2003 的 Microsoft Excel 97,无法完整地打开文本文件,包含超过 65,536 行。您不能打开这些文件,因为这些版本的 Microsoft Excel 仅限于 65,536 行。如果您打开一个文件包含比这更多的数据,该文本文件则截尾取整行 65,536,并您会收到以下错误消息:
不完全加载的文件。
但是,您可以使用宏来打开该文件,并自动将文本分为多个工作表

备注

Excel 97 更早版本的 Excel 具有 16,384 行的限制。

更高版本的 Excel 于 Excel 2003 有 1,048,576 行的限制。

更多信息

Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证。这包括,但不限于对适销性或针对特定用途的适用性的暗示的担保。本文假定您熟悉演示了正在使用的编程语言以及用于创建和调试过程的工具。Microsoft 支持工程师可以帮助解释某个特定过程的功能。但是,他们不会修改这些示例以提供额外的功能或构建过程来满足您的具体要求。下面的示例宏提示您输入文本的文件名称,然后再打开到内存中的文件。超过 65,536 的 Excel 工作表限制行数是否该宏会将文件分成多个工作表。该宏只适用于保存为文本文件,并不能应用于任何其他文件格式的文件。使用数据库的文件格式时宏无法正常工作。

请注意这是一个宏使用它可能比在 文件 菜单上单击 打开 的速度要慢得。
   'All lines that begin with an apostrophe (') are remarks and are not
   'required for the macro to run.
				
   Sub LargeFileImport()

      'Dimension Variables
      Dim ResultStr As String
      Dim FileName As String
      Dim FileNum As Integer
      Dim Counter As Double
      'Ask User for File's Name
      FileName = InputBox("Please enter the Text File's name, e.g. test.txt")
      'Check for no entry
      If FileName = "" Then End
      'Get Next Available File Handle Number
      FileNum = FreeFile()
      'Open Text File For Input
      Open FileName For Input As #FileNum
      'Turn Screen Updating Off
      Application.ScreenUpdating = False
      'Create A New WorkBook With One Worksheet In It
      Workbooks.Add template:=xlWorksheet
      'Set The Counter to 1
      Counter = 1
      'Loop Until the End Of File Is Reached
      Do While Seek(FileNum) <= LOF(FileNum)
         'Display Importing Row Number On Status Bar
          Application.StatusBar = "Importing Row " & _
             Counter & " of text file " & FileName
          'Store One Line Of Text From File To Variable
          Line Input #FileNum, ResultStr
          'Store Variable Data Into Active Cell
          If Left(ResultStr, 1) = "=" Then
             ActiveCell.Value = "'" & ResultStr
          Else
             ActiveCell.Value = ResultStr
          End If
          
          'For Excel versions before Excel 97, change 65536 to 16384
          If ActiveCell.Row = 65536 Then
             'If On The Last Row Then Add A New Sheet
             ActiveWorkbook.Sheets.Add
          Else
             'If Not The Last Row Then Go One Cell Down
             ActiveCell.Offset(1, 0).Select
          End If
          'Increment the Counter By 1
          Counter = Counter + 1
      'Start Again At Top Of 'Do While' Statement
      Loop
      'Close The Open Text File
      Close
      'Remove Message From Status Bar
      Application.StatusBar = False

   End Sub
				
注意 宏不分析到列的数据。在使用该宏后还可能需要分析数据,根据需要使用在 数据 菜单上的 文本到列 命令。 当在一个 Macintosh 中运行此宏,并正试图打开在桌面上的文件必须在具有以下文件名称前加上
Hard disk: 桌面文件夹:
其中,Hard disk 是硬盘的您的名称。请注意桌面和文件夹单词之间没有空格。

属性

文章编号: 120596 - 最后修改: 2007年5月7日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Excel 97 标准版
  • Microsoft Excel 2000 标准版
  • Microsoft Excel 2002 标准版
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
关键字:?
kbmt kbimport kbhowto kbcode KB120596 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 120596
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com