Информатика. Книга 7 Быстрое размножение рабочей книги 7 Сохранение рабочей книги с именем, представляющим собой текущую дату 7
Скачать 1.27 Mb.
|
Удаление пустых строк на рабочем листеЛистинг 3.54. Удаление пустых строк (вариант 1) Sub DeleteEmptyStrings() Dim intLastRow As Integer ' Номер последней используемой строки Dim intRow As Integer ' Номер проверяемой строки ' Получение номера последней используемой строки intLastRow = Worksheets(ActiveSheet.Index).UsedRange.Row + _ Worksheets(ActiveSheet.Index).UsedRange.Rows.Count - 1 ' Счетчик устанавливается на используемую первую строку intRow = Worksheets(ActiveSheet.Index).UsedRange.Row ' Удаление пустых строк Do While intRow <= intLastRow If ActiveSheet.Rows(intRow).Text = "" Then ' Удаление строки ActiveSheet.Rows(intRow).Delete ' Данные сдвинулись вверх, поэтому номер последней _ строки уменьшился, а текущей - не изменился intLastRow = intLastRow - 1 Else ' Текущая строка заполнена - переходим к следующей intRow = intRow + 1 End If Loop End Sub Листинг 3.55. Удаление пустых строк (вариант 2) Sub DeleteEmptyStrings1() Dim intRow As Integer Dim intLastRow As Integer ' Получение номера последней используемой строки intLastRow = ActiveSheet.UsedRange.Row + _ ActiveSheet.UsedRange.Rows.Count - 1 ' Удаление пустых строк For intRow = intLastRow To 1 Step -1 If ActiveSheet.Rows(intRow).Text = "" Then ActiveSheet.Rows(intRow).Delete End If Next intRow End Sub Запись текущих данных в текстовый файлЛистинг 3.56. Запись в текстовый файл Sub SaveAsText() Dim cell As Range ' Открытие файла для сохранения (имя файла соответствует имени _ рабочей книги, но отличается расширением - TXT) Open ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".txt" _ For Output As #1 ' Запись содержимого заполненных ячеек таблицы в файл For Each cell In ActiveSheet.UsedRange If Not IsEmpty(cell) Then Print #1, cell.Address, cell.Formula End If Next ' Не забываем закрывать файл Close #1 End Sub Листинг 3.57. Экспорт в текстовый файл Sub SaveAsText1() Dim cell As Range ' Открытие файла для сохранения (имя файла соответствует имени _ рабочей книги, но отличается расширением - TXT) Open ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".txt" _ For Output As #1 ' Запись содержимого заполненных ячеек таблицы в файл For Each cell In ActiveSheet.UsedRange If Not IsEmpty(cell) Then Print #1, cell.Address, cell.FormulaLocal End If Next ' Не забываем закрывать файл Close #1 End Sub Экспорт и импорт данныхЛистинг 3.58. Экспорт и импорт данных Sub ExportAsText() Dim lngRow As Long Dim intCol As Integer ' Открытие файла для сохранения Open "C:\primer.txt" For Output As #1 ' Запись выделенной части таблицы в файл (построчно) For lngRow = 1 To Selection.Rows.Count ' Запись содержимого всех столбцов строки lngRow For intCol = 1 To Selection.Columns.Count Write #1, Selection.Cells(lngRow, intCol).Value; Next intCol ' Начнем новую строку в файле Print #1, "" Next lngRow ' Не забываем закрыть файл Close #1 End Sub Sub ImportText() Dim strLine As String ' Одна строка файла Dim strCurChar As String * 1 ' Анализируемый символ строки файла Dim strValue As String ' Значение для записи в ячейку Dim lngRow As Long ' Номер текущей строки Dim intCol As Integer ' Номер текущего столбца Dim i As Integer ' Открытие импортируемого файла Open "C:\primer.txt" For Input As #1 ' Считываем все строки файла и записываем данные, разделенные _ запятой, в ячейки таблицы (начиная с текущей ячейки) Do Until EOF(1) ' Считываем строку из файла Line Input #1, strLine ' Разбираем считанную строку For i = 1 To Len(strLine) strCurChar = Mid(strLine, i, 1) If strCurChar = "," Then ' Найден разделитель столбцов - запятая. Запишем _ сформированное значение в ячейку ActiveCell.Offset(lngRow, intCol) = strValue intCol = intCol + 1 strValue = "" ElseIf i = Len(strLine) Then ' Конец строки - запишем в таблицу последнее _ значение в строке (перед этим дополним его последним _ символом строки, кроме кавычки) If strCurChar <> Chr(34) Then strValue = strValue & strCurChar End If ' Запись в таблицу ActiveCell.Offset(lngRow, intCol) = strValue strValue = "" ElseIf strCurChar <> Chr(34) Then ' Добавление символа в формируемое значение ячейки _ (кавычки игнорируются) strValue = strValue & strCurChar End If Next i ' Переход к новой строке таблицы intCol = 0 lngRow = lngRow + 1 Loop ' Закрываем файл Close #1 End Sub |