В Excel есть ограничение на количество строк на листе — до 65 535. Однако вполне возможно, что файл необработанных данных содержит больше, чем это количество строк. Если вам нужно импортировать этот файл в Excel, это может показаться практически невозможным без обновления до Excel 2007 или более поздней версии. (Эти более поздние версии превысили ограничение в 65 535 строк.) Однако есть несколько вещей, которые вы можете сделать.

Одна из возможностей — сделать копии необработанного текстового файла (того, который вы хотите импортировать), а затем уменьшить размер каждого файла. Например, если у вас есть в общей сложности 110000 строк, которые необходимо импортировать в Excel, и вы работаете с ограничением в 65 535 строк, вы можете сделать две копии необработанного текстового файла. Удалите вторую половину первого текстового файла и первую половину второго. Таким образом, вы можете импортировать первый файл (теперь 55 000 строк) в один рабочий лист, а второй файл (также 55 000 строк)

во второй.

Если вы не хотите разбивать входные файлы, вы можете рассмотреть возможность импорта файла в Access. В отличие от Excel, Access практически не имеет ограничений на количество строк, которые вы можете импортировать. Затем вы можете либо работать с файлом в Access, либо экспортировать части файла для использования в Excel.

Наконец, вы можете использовать макрос для импорта записей в большом исходном файле. Есть много способов сделать это, но основная идея любого подхода — получить каждую строку из исходного файла и поместить ее в новую строку рабочего листа. Макрос должен отслеживать, сколько строк он помещает, и при необходимости переключаться на новый рабочий лист.

Public Sub LoadFile()

Dim strLine As String     Dim I As Long     Dim J As Long     Dim iLen As Integer     Dim iSh As Integer     Dim lL As Long     Dim sDelim As String     Dim MaxSize As Long

sDelim = Chr(9)

MaxSize = 65000     I = 0     Open "C:\MyDir\MyFile.txt" For Input As #5     Do While Not EOF(5)

iSh = (I / MaxSize) + 1         lL = I Mod MaxSize         Line Input #5, strLine         If Right(strLine, 1) <> sDelim Then            strLine = Trim(strLine) & sDelim         End If         J = 0         Do While Len(strLine) > 1             iLen = InStr(strLine, sDelim)

Worksheets("Sheet" & iSh).Offset(lL, J).Value = _               Trim(Left(strLine, iLen - 1))

strLine = Trim(Right(strLine, Len(strLine) - iLen))

J = J + 1         Loop         I = I + 1     Loop     Close #5 End Sub

Макрос предполагает, что у вас уже есть достаточно листов в вашей книге для хранения данных, и что они пронумерованы Sheet1, Sheet2, Sheet3 и т. Д. Две переменные, которые вы хотите проверить в программе, — это настройки sDelim и MaxSize. Первый указывает, какой символ используется в качестве разделителя полей в считываемой информации. Второй указывает максимальное количество строк на каждом листе. (Не устанавливайте MaxSize больше, чем позволяет ваша версия Excel.)

Наконец, обратите внимание, что макрос открывает текстовый файл MyFile.txt. Вы захотите изменить этот оператор Open, чтобы он открывал реальный исходный файл, который вы хотите импортировать.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2533) применим к Microsoft Excel 97, 2000, 2002 и 2003.