Главная страница
Навигация по странице:

  • Листинг 3.54.

  • Листинг 3.55.

  • Листинг 3.56.

  • Листинг 3.57.

  • Листинг 3.58.

  • Информатика. Книга 7 Быстрое размножение рабочей книги 7 Сохранение рабочей книги с именем, представляющим собой текущую дату 7


    Скачать 1.27 Mb.
    НазваниеКнига 7 Быстрое размножение рабочей книги 7 Сохранение рабочей книги с именем, представляющим собой текущую дату 7
    АнкорИнформатика
    Дата16.05.2022
    Размер1.27 Mb.
    Формат файлаdoc
    Имя файлаVBA_v_primerakh.doc
    ТипКнига
    #532661
    страница10 из 21
    1   ...   6   7   8   9   10   11   12   13   ...   21

    Удаление пустых строк на рабочем листе


    Листинг 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
    1   ...   6   7   8   9   10   11   12   13   ...   21


    написать администратору сайта