Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Найти закрашенную ячейку, Помогите написать функцию
 
там дело вот в чем,
я допустим создаю сложную таблицу с уравнениями,
но мне надо чтобы программа могла чётко определить эти закрашенные поля
например квадрат может иметь форму П или Г (ряд ячеег так выглядит),
и моя функция определит его как квадрат x*y
а это неправильно, и не хочется все ячейки для этого переберать это тоже неразумно
Изменено: Альфа-Самец - 27.12.2014 15:20:22
Найти закрашенную ячейку, Помогите написать функцию
 
Цитата
Перебор ячеек и просмотр, закрашена ли
Нет так не надо, пример я скинул, у меня там Find в бесконечном цикле
а когда цвет найденн то просматривается только горизонтальная часть
и вертикальная с целью найти где заканчивается цвет

но не ужели нет встроенных функций которые бы в 2 клика такое делали ?
Найти закрашенную ячейку, Помогите написать функцию
 
Вот я сделал, но не совсем уверенн что такой подход правильный

Код
Function GetSquares(ColorID&, Optional ResultArr As Boolean = 1)
    'Находит квадраты залитыми указанным цветом
    Const zs$ = ")", tt$ = ":", zz$ = ","
    Const max& = 2 ^ 31 - 1
    Dim xx&, yy&, X&, Y&, r1 As Range, r2 As Range
    Dim s$, ss$, j$()

    With ActiveSheet
        Set r1 = .Cells(1, 1)
        Application.FindFormat.Clear
        Application.FindFormat.Interior.ColorIndex = ColorID
        Do
            Set r1 = .Cells.Find("", r1, SearchOrder:=xlByRows, SearchFormat:=True)
            If r1 Is Nothing Then Exit Do
            X = r1.Column: Y = r1.Row
            For xx = X To max: If .Cells(Y, xx).Interior.ColorIndex <> ColorID Then Exit For
            Next: xx = xx - 1
            For yy = Y To max: If .Cells(yy, xx).Interior.ColorIndex <> ColorID Then Exit For
            Next: yy = yy - 1: Set r1 = .Cells(Y, xx)
            s = .Cells(Y, X).Address & tt & .Cells(yy, xx).Address
            If InStr(1, ss, s) Then Exit Do
            If InStr(1, ss, .Cells(yy, xx).Address) = 0 Then ss = ss & zz & s
        Loop
        j = Split(Mid$(ss, 2), zz)
        For X = 0 To UBound(j): j(X) = .Range(j(X)).Address: Next
        GetSquares = IIf(ResultArr, j, Join(j, zz))
    End With
End Function
Изменено: Альфа-Самец - 27.12.2014 14:58:06
Найти закрашенную ячейку, Помогите написать функцию
 
Ребята, мне надо получить массив из закрашенных матриц
например на листе существует несколько квадратиков серого цвета

так вот массив должен выглядеть примерно так: a1:c3, d4:e6
Установить указатель мыши на кнопку_(?)
 
Через API это делается, упс (уже ктото ответил)

Цитата
осталось только вычислить абсолютные координаты кнопки
как-раз с координатами, нашему юзеру и придётся немного помучиться
Изменено: Альфа-Самец - 27.12.2014 08:02:19
Страницы: 1
Loading...