Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA For Excel Часть 02.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
1.08 Mб
Скачать

12.3 Причины, по которым код vba проекта может не исполняться

Код проекта может не исполнятся, если проект загружен в режиме не работающих макросов или уровень установленной безопасности слишком высок для проекта (см. 12.2 Зашита от макровирусов). Например, если установлен высокий уровень безопасности, то не будет выполняться макрос не имеющий подписи. Подпись макроса это несколько строк комментариев расположенных сразу после имени макроса. Подпись в макросе появляется в том случаи, если он был создан через пункт меню Сервис-Макрос-Начать запись.

Пример макроса с подписью:

Sub ОчиститьСодержимоеВыделенного()

'

' ОчиститьСодержимоеВыделенного Макрос

' Макрос записан 19.08.04 (Тихвинский В.И.)

'

'

Selection.ClearContents

End Sub

Приложение 1 Задание 1 (автозаполнение пола)

  1. Заполните электронную таблицу согласно рисунку 7, но колонку пол не заполняйте.

  2. В режиме конструктора установите на лист Excel элемент управления кнопку и замените на ней Caption согласно рисунку 6.

  3. Перейдите в редакторVBA.

  4. Активизируйте модуль листа Excel на котором расположен элемент управления кнопка.

  5. Создайте событийную процедуру кнопки и заполните ее.

  6. Закройте окно редактора VBA

  7. Включите режим программы и опробуйте ее нажав на элемент управления кнопку.

A

B

С

D

E

F

G

1

Фамилия

Имя

Отчество

Пол

Автозаполнение пола

2

Иванова

Мария

Павловна

Ж

3

Сидоров

Сидор

Сидорович

М

4

Петров

Петр

Петрович

М

5

Макарова

Вера

Ивановна

Ж

6

Иванов

Борис

Алексеевич

М

7

Ванюкова

Вера

Николаевна

Ж

Рис 7 Лист Excel

‘Событийная процедура кнопки

Private Sub CommandButton1_Click()

Dim n As Integer, s As String

n = 2

‘Адресацию столбцов набивайте на латыни!

While Range("C" + СStr(n)).Text <> ""

s = Range("C" + СStr(n)).Text

‘Буква “а” в кавычках набрана кириллицей!

If Mid(s, Len(s), 1) = "а" Then

Range("D" + СStr(n)).Value = "Ж"

Else

Range("D" + СStr(n)).Value = "М"

End If

n = n + 1

Wend

End Sub

Задание 2 (автозаполнение комментариев к числам)

  1. Заполните электронную таблицу согласно рисунку 8.

  2. В режиме конструктора установите на лист Excel элемент управления кнопку и замените на ней Caption согласно рисунку 7.

  3. Перейдите в редактор VBA.

  4. Вставьте новый модуль в проект (Меню: Вставка-Модуль).

  5. Перейдите в редактор вставленного модуля и набейте функцию в модуле

  1. Активизируйте модуль листа Excel на котором расположен элемент управления кнопка.

  2. Создайте событийную процедуру кнопки и заполните ее.

  3. Закройте окно редактора VBA

  4. Включите режим программы и опробуйте ее, нажав на элемент управления кнопку.

  5. Сотрите комментарии к числам в столбце “С”.

  6. Вставьте вашу функцию в ячейку “С2” (Меню: Вставка-Функция-Определяемая пользователем)

  7. Скопируйте функцию в другие ячейки

A

B

C

1

Наименование

Кол-во

2

Болт

12

3

Шуруп

10

4

Гайка

32

5

Шайба

1024

Добавить комментарии

6

Рис. 8 Лист Excel

Лист1 -

‘модуль листа

Private Sub CommandButton1_Click()

Dim n As Long

n = 2

‘Адресацию столбцов набивайте на латыни!

While Range("B" + СStr(n)).Text <> ""

Range("C" + СStr(n)).Value = числительное(Range("B" + СStr(n)).Value)

n = n + 1

Wend

End Sub

Модуль1 -

‘модуль макросов вставленный в проект пользователем

Public Function числительное(ByVal n As Long) As String

If n > 10 And n <= 19 Then

n = 0

End If

n = n Mod 10

If n = 0 Or n >= 5 Then

числительное = "Штук"

ElseIf n = 1 Then

числительное = "Штука"

Else

числительное = "Штуки"

End If

End Function

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]