×
Traktatov.net » Excel. Трюки и эффекты » Читать онлайн
Страница 136 из 146 Настройки

For Each cell In rgData.Cells

If cell.Address(False, False) = _

Range(txtResCell.Text).Address(False, False) Then

' Нашли циклическую ссылку

MsgBox "Введите другой адрес во избежание " & _

«появления циклических ссылок», vbCritical, _

«Внимание!»

Cancel = True

Exit Sub

End If

Next cell

Exit Sub

Err1:

'Обработка ошибок при работе с ячейками

If Err.Number = 1004 Then

MsgBox «Введите корректный адрес ячейки», vbCritical, _

«Ошибка ввода»

Cancel = True

Exit Sub

Else

MsgBox Err.Description, vbCritical, «Ошибка ввода»

Cancel = True

Exit Sub

End If

End Sub

Sub UserForm_Activate()

' Инициализация формы при активации

Dim intFunc As Integer

Dim strFunc As String

' Заполение списка доступных операций

cboCalcTypes.AddItem "0"

cboCalcTypes.List(0, 1) = «Сумма»

cboCalcTypes.AddItem "1"

cboCalcTypes.List(1, 1) = «Среднее»

cboCalcTypes.AddItem "2"

cboCalcTypes.List(2, 1) = «Максимум»

cboCalcTypes.AddItem "3"

cboCalcTypes.List(3, 1) = «Минимум»

cboCalcTypes.AddItem "4"

cboCalcTypes.List(4, 1) = «Количество ячеек»

cboCalcTypes.AddItem "5"

cboCalcTypes.List(5, 1) = «Сумма положительных»

cboCalcTypes.AddItem "6"

cboCalcTypes.List(6, 1) = «Сумма отрицательных»

cboCalcTypes.AddItem "7"

cboCalcTypes.List(7, 1) = «Количество непустых»

cboCalcTypes.AddItem "8"

cboCalcTypes.List(8, 1) = «Количество непустых ненулевых»

cboCalcTypes.AddItem "9"

cboCalcTypes.List(9, 1) = «Количество положительных»

cboCalcTypes.AddItem «10»

cboCalcTypes.List(10, 1) = «Количество отрицательных»

' Заполнение списка дополнительных цветов

cboOtherColor.AddItem «255»

cboOtherColor.List(0, 1) = «Красный»

cboOtherColor.AddItem «52479»

cboOtherColor.List(1, 1) = «Оранжевый»

cboOtherColor.AddItem «65535»

cboOtherColor.List(2, 1) = «Желтый»

cboOtherColor.AddItem «32768»

cboOtherColor.List(3, 1) = «Зеленый»

cboOtherColor.AddItem «16776960»

cboOtherColor.List(4, 1) = «Голубой»

cboOtherColor.AddItem «16711680»

cboOtherColor.List(5, 1) = «Синий»

cboOtherColor.AddItem «16711935»

cboOtherColor.List(6, 1) = «Фиолетовый»

cboOtherColor.AddItem «16777215»

cboOtherColor.List(7, 1) = «Белый»

cboOtherColor.AddItem "0"

cboOtherColor.List(8, 1) = «Черный»

If Selection.Cells.Count = 1 Then

' На листе есть выделенная ячейка. Определим, есть ли

в этой _

ячейке формула с функцией ColorCalc

intFunc = InStr(Selection.Formula, "ColorCalc(")

If intFunc > 0 Then

' Формула есть, заполним поля формы для вычислений

' Адрес ячейки с результатом

txtResCell.Text = Selection.Address(False, False)

' Выделяем аргументы функции...

' Номера ячеек с исходными данными

strFunc = Mid(Selection.Formula, intFunc + 11)

intFunc = InStr(strFunc, "" "")

txtRange.Text = Left(strFunc, intFunc – 1)

' Тип идентификации ячеек (по шрифту или цвету)

strFunc = Mid(strFunc, intFunc + 2)

intFunc = InStr(strFunc, ",")

strFunc = Mid(strFunc, intFunc + 1)

intFunc = InStr(strFunc, ",")

tglType.Value = Left(strFunc, intFunc – 1)

' Режим вычислений

strFunc = Mid(strFunc, intFunc + 1)

strFunc = Left(strFunc, Len(strFunc) – 1)

intFunc = InStr(strFunc, ",")

cboCalcTypes.Text = cboCalcTypes.List(Val(Left$( _

strFunc, intFunc – 1)), 1)

strFunc = Mid(strFunc, intFunc + 1)