powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
15 сообщений из 15, страница 1 из 1
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389139
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос в заголовке темы. Имеем ячейку из которой вызывается наша польз. функция. Нужно передать в функцию адрес нашей ячейки. На данный момент сделал так:
Код: plaintext
1.
=SumSpecs(АДРЕС(СТРОКА(Q16);СТОЛБЕЦ(Q16)))
, где Q16 ячейка, из которой вызываем, а SumSpec поль. функция. Ну или же есть возможность в функции получить адрес ячейки без передачи параметра?
ActiveCell не подходит
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389172
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpaqpTukСобственно вопрос в заголовке темы. Имеем ячейку из которой вызывается наша польз. функция. Нужно передать в функцию адрес нашей ячейки. На данный момент сделал так:
Код: plaintext
1.
=SumSpecs(АДРЕС(СТРОКА(Q16);СТОЛБЕЦ(Q16)))
, где Q16 ячейка, из которой вызываем, а SumSpec поль. функция. Ну или же есть возможность в функции получить адрес ячейки без передачи параметра?
ActiveCell не подходитtarget.address
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389271
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
target.address
Благодарю, погугля узнал что target.address используется для события Worksheet_Change, а как прикрепиться к событию через функцию или наоборот не подскажете?
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389451
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
код пользовательской функции покажите.
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389633
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanBкод пользовательской функции покажите.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'Функция подсчета суммы спецификации
Function SumSpecs(Address)
    Application.Volatile
    'Переменная итоговой суммы
    nSum =  0 
    'Определяем букву ячейки
    sColumnName = Mid(Address,  2 , (InStr( 2 , Address, "$")) -  2 )
    'Прогоняем в икле строки спецификации
    For i =  6  To  10000  Step  1 
        If Range("A" + Trim(Str(i))).Value = "" Then
            nSum = nSum + Range(sColumnName + Trim(Str(i))).Value
        End If
        'Условие выхода
        If Range("A" + Trim(Str(i))).Value = "Всего:" Then Exit For
    Next
    'Присваиваем пустое значение если переменная пуста
    If nSum =  0  Then
        nSum = ""
    End If
    SumSpecs = nSum
End Function
Что она делает:, принимает адрес сгруппированных ячеек табличного приложения, по букве адреса получает собственно сам "столбец", затем открывает цикл и сканирует всю таблицу начиная от края шапки и заканчивая фразой всего. Во всего и выводится числовая сумма по заданному столбцу.
Т.е. мне нужно чтобы в функцию передавался адрес ячейки из которой вызывается эта функция, по столбцу этой ячейки проходит суммирование и выводится в эту же ячейку.
П.С. Данный пример работает корректно.
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37389994
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTuk,

чего-то у Вас наворочено... А чем не устраивает СУММ? Можно пример таблицы, куда вы вставляете эту функцию? Уверен, можно гораздо проще.
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37390160
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да уж...
Пусть, например, рассчитывается ячейка C20, тогда:
Код: plaintext
=СУММЕСЛИ($A$ 6 :$A$ 19 ;"";C$ 6 :C$ 19 )
и наложить условное форматирование "ноль - белый цвет"...
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37390163
R_ Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KpaqpTuk,

И кто Вам только это написал ;)
Код: plaintext
Range("A" + Trim(Str(i))).Value

достаточно так
Код: plaintext
Range("A"& i).Value


формулы достаточно =СТОЛБЕЦ(Q16)
и функция будет такой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Function SumSpecs(Address)
    Application.Volatile
      nSum =  0 
        For i =  6  To  10000 
        If Range("A" & i).Value = "" Then
            SumSpecs = SumSpecs+ cells(Address,i).Value
        End If
            If cells(Address,i).Value = "Всего:" Then Exit For
    Next
     If SumSpecs =  0  Then  nSum = ""
End Function
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37390278
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
R_ Dmitry,

Дим, все равно не то. С Volatile, да с циклом на 10000 строк(пусть даже с досрочным выходом), а если еще таких формулок пяток на листе будет, Экс повесится без мыла при первом же чихе. Вариант - через find находить конец диапазона и одним махом application.sum, но вариант от AndreTM все равно будет быстрей. И смысл тогда огород городить?
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37390754
R__Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuklp,
Да я и не против........
Нет файла нет нормального решения
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37391089
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMДа уж...
Пусть, например, рассчитывается ячейка C20, тогда:
Код: plaintext
=СУММЕСЛИ($A$ 6 :$A$ 19 ;"";C$ 6 :C$ 19 )
и наложить условное форматирование "ноль - белый цвет"...
Ну как говорится век живи, век учись, про СУММЕСЛИ даже и не знал, почитал справку, вбил формулу и вуаля - все посчитано.

На VB не работал, сам пишу процедуры на PL/SQL (Oracle), по жизни дико радуюсь каждому грамму новой информации и новых знаний (мне 21, стаж работы 2 года). Поэтому всем примного благодарен за приведенные замечания, все запомнил, есть куда расти.

Всех благодарю... Хорошего дня :-)
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37391129
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шаблон выглядит примерно так, выкладываю картинкой, так как это готовый (выгруженный) из СУБД вариант, в шаблоне кроме шапки всего пара строк.

С помощью формулы СУММЕСЛИ удалось подсчитать итоговую сумму по всем строкам. Итоги по спецификации считаются хитрым способом, может есть возможность подсчитать формулой сумму скажем по Кировскому району, т.е. диапазон формулы должен принимать значение (Имя района:Итого), причем в шаблоне программным способом сперва рисуется шапка группы, затем n-ое число строк организаций, затем подвал.
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37391304
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Под словом рисуется понимается размножение "нулевой" строки, тобишь в шаблоне создали строку, в ячейки разнесли формулы. Затем программным способом нулевая строка размножается вместе со всеми формулами.
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37391316
PlanB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KpaqpTuk, вот ссылка на топик. он предупредит ваши дальнейшие вопросы
...
Рейтинг: 0 / 0
Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
    #37391405
KpaqpTuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PlanBKpaqpTuk, вот ссылка на топик. он предупредит ваши дальнейшие вопросы
Благодарю.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Как передать в польз. функцию адрес ячейки, из которой она вызывается.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]