Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_ТСПП_Полн_2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.31 Mб
Скачать

4.4 Ввод-вывод при помощи ячеек Excel

Для ввода исходных данных из конкретных ячеек рабочего листа Excel, а также для вывода результатов расчета в ячейки может быть эффективно применен объект ActiveCell. Объект Range используется для указания ячеек. Объект ActiveCell указывает на ячейку (или объект Range), который имеет фокус при вводе данных с клавиатуры. Для этого используется свойство Value. Например, в ячейку с адресом А5 необходимо записать значение переменной Rost:

Range(“A5”).Select

ActiveCell.Value = Rost

Обратная процедура выполняется аналогично:

Rost = ActiveCell.Value

Если есть необходимость считывать большое число данных из различных ячеек, адреса которых можно вычислить, целесообразно использование метода Offset(R,C), где R – смещение на R строк вниз относительно строки активной ячейки, C – смещение на С столбцов вправо относительно столбца активной ячейки. Например, следующая строка записывает значение переменной Rost в ячейку В7:

Range(“A5”).Select

ActiveCell.Offset(2, 1).Value = Rost

Ниже приведен пример программы, обрабатывающей квадратную матрицу. Исходная матрица считывается с листа ListA, результаты располагаются там же. На рисунке 4.1 представлен протокол работы.

Рисунок 4.1 – Пример ввода-вывода данных через ячейки

Public Sub Cikle2()

' Ввод и вывод данных в цикле

Dim Y(4, 4) As Single, Byfer As Single

Dim i As Byte, j As Byte, imin As Byte, imax As Byte

Dim maxim As Single

Dim minim As Single

Sheets("ListA").Select

Range("a3").Select

For i = 1 To 4

For j = 1 To 4

Y(i, j) = ActiveCell.Offset(i - 1, j - 1).Value

Next j

Next i

maxim = Y(1, 1): minim = Y(1, 1)

imin = 1: imax = 1

For i = 1 To 4

For j = 1 To 4

If Y(i, j) > maxim Then

maxim = Y(i, j): imax = i

End If

If Y(i, j) < minim Then

minim = Y(i, j): imin = i

End If

Next j

Next i

Range("A7:H20").Select

Selection.Clear

With Selection.Font

.Name = "Times New Roman CYR"

.Size = 14

End With

Range("A7").Select

If imin <> imax Then

ActiveCell.Formula = "Результат - матрица c поменяными строками (max и min элементы)"

For j = 1 To 4

Byfer = Y(imax, j)

Y(imax, j) = Y(imin, j)

Y(imin, j) = Byfer

Next j

For i = 1 To 4

For j = 1 To 4

ActiveCell.Offset(i, j - 1).Value = Y(i, j)

Next j

Next i

Else

ActiveCell.Formula = "Строки с минимумом и максимумом совпали"

End If

Range("A12").Select

ActiveCell.Formula = "Mин="

ActiveCell.Offset(0, 1).Value = minim

ActiveCell.Offset(0, 2).Formula = "Max="

ActiveCell.Offset(0, 3).Value = maxim

End Sub

Лекция №5 Структура кода vba. Процедуры и функции

  1. Пол Санна и др. Visual Basic для приложений (версия 5) в подлиннике: пер. с англ. –СПб.: BHV - Санкт-Петербург, 1999. –704с.

  2. Справочная система Visual Basic for Excel.

  3. Михаэль Райтингер, Геральд Муч. Visual Basic 6.0 для пользователя. пер.с нем. –К.: Издательская группа BHV, 1999. –416с.

  4. Михаэль Райтингер, Геральд Муч. Visual Basic 6.0: пер.с нем. –К.: Издательская группа BHV, 2000. –288с. (серия “Библиотека студента”)

  5. Грег Перри, Санжайа Хеттихева. Visual Basic 6: пер.с англ. –М.: ЗАО «Издательство БИНОМ», 1999. –384с. (серия “Освой самостоятельно за 24 часа”)