powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Расчёт в другом листе
18 сообщений из 18, страница 1 из 1
Расчёт в другом листе
    #34505151
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Такая проблема:
в ячейку листа "Лист1" вставляю ссылку на функцию

fx_Primer(A, B, C)
Sheets("Лист2").Range("B1") = A
Sheets("Лист2").Range("B2") = B
Sheets("Лист2").Range("B3") = C
fx_Primer = Sheets("Лист2").Range("B4")
end function

Т.Е. надо взять данные на одном листе вставить в определённые ячейки другого, а результат
из ячейки Sheets("Лист2").Range("B4") вернуть.
Но при первой же попытке вставить значение (Sheets("Лист2").Range("B1") = A) вылетает с ошибкой: Application-defined or object-defined error.
Если обсуждалось уже дайте ссылку.
Спасибо.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505310
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай расчёт внутри функции, а не на листе!
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505436
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadСделай расчёт внутри функции, а не на листе!
В том то и дело что файл не мой и чтобы сделать внутри функции нужно неделю читать несколько ГОСТов, потом их понять а тут уже готово всё, только три ячейки заполнить данными и считывать результат.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505497
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNiL DeggasadСделай расчёт внутри функции, а не на листе!
В том то и дело что файл не мой и чтобы сделать внутри функции нужно неделю читать несколько ГОСТов, потом их понять а тут уже готово всё, только три ячейки заполнить данными и считывать результат.

Церез процедуру поставь, а не через функцию и запускай по какому нибуть событию или по нажатию кнопки!
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505596
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А файлик можно увидеть?
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505643
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadА файлик можно увидеть?
Упрощённый пример.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34505980
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант без макросов, кто его знает что у тебя там за задача может пригодится!
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506177
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
Но это не то (кстати что там за функция ЕОШ?) мне бы по проще через функцию
По идеи всё должно быть элементарно, но я не понимаю почему выдаётся ошибка на строке: Sheets("Лист2").Range("B1") = A
Если выполнить в окне отладчика ячейке присваивается любое значение. А вот из функции не хочет.

P.S. Если не трудно посмотри пожалуйста эту тему может что-нибудь подскажеш.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506184
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNiLСпасибо.
Но это не то (кстати что там за функция ЕОШ?) мне бы по проще через функцию
По идеи всё должно быть элементарно, но я не понимаю почему выдаётся ошибка на строке: Sheets("Лист2").Range("B1") = A
Если выполнить в окне отладчика ячейке присваивается любое значение. А вот из функции не хочет.

P.S. Если не трудно посмотри пожалуйста эту тему может что-нибудь подскажеш.

Через функцию я так понимаю не получится потому что получается что функция присваивает какие-то значения ячейкам, причём сразу несколько разных, в голове не укладывается. вот если процедуру сделать и повесить на событие изменения на листе щас пример выложу, подожди
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506200
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad SNiLСпасибо.
Но это не то (кстати что там за функция ЕОШ?) мне бы по проще через функцию
По идеи всё должно быть элементарно, но я не понимаю почему выдаётся ошибка на строке: Sheets("Лист2").Range("B1") = A
Если выполнить в окне отладчика ячейке присваивается любое значение. А вот из функции не хочет.

P.S. Если не трудно посмотри пожалуйста эту тему может что-нибудь подскажеш.

Через функцию я так понимаю не получится потому что получается что функция присваивает какие-то значения ячейкам, причём сразу несколько разных, в голове не укладывается. вот если процедуру сделать и повесить на событие изменения на листе щас пример выложу, подожди

Ты понимаеш если делаю перебором в цикле диапазон значений А, В, С и точно также присваиваю значение ячейке Sheets("Лист2").Range("B" & i ) = A и т.д. то всё нормально происходит. Считываю полученный результат и заношу в нужный столбец. Но так как листов много и возможно различие диапазонов то ручками править каждый раз .... Решил через функцию - ведь в сущности тоже самое а не выходит.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506207
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNiL .... Решил через функцию - ведь в сущности тоже самое а не выходит.

Не то же самое в цикле значения по очереди присваиваются, а несколько функций одновременно!
Как тебе...


SNiL Но так как листов много и возможно различие диапазонов то ручками править каждый раз ....

Чё ты там ручками делаешь? Присылай файл!
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506222
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad SNiL .... Решил через функцию - ведь в сущности тоже самое а не выходит.

Не то же самое в цикле значения по очереди присваиваются, а несколько функций одновременно!
Как тебе...
.

Подожди, как-же функция может одновременно присвоить значение нескольким ячейкам если она в пошаговом режиме уже на первой строке вылетает?
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34506228
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNiL

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

Потому я так понимаю и вылетает, что впринципе такие действия в функции невозможно сделать. У меня кстате не вылетате, а просто ошибку выдаёт
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34507158
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я обещал свой вариант решения. Вот время появилось - наваял.
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34507261
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
Но хотелось бы разобраться с функцией. Если её запускать не из ячейки (например в окне Immediate) то всё работает нормально. Почему же из ячейки не хочет?! Похоже не понимаю я Excel
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34507369
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SNiLНо хотелось бы разобраться с функцией. Если её запускать не из ячейки (например в окне Immediate) то всё работает нормально. Почему же из ячейки не хочет?! Похоже не понимаю я Excel

Я блин по теории не знаю, но попробуй мыслить логично!
Если функция выполняется в макросе то это последовательность действий, причём каждое действие идёт вслед за предыдущим.

Если использовать функцию на листе тополучится что есть вероятность что сразу несколько функций будут задавать значение одной и той же ячейки. Эксель не допускает этого. Вот и всё.
Тем более нельзя впринципе написалв функцию на листе сделать с книгой какие-то операции, Написав функцию на листе можно лишь вычислить (повлиять) на эту ячейку в которой пишется функция., но не на другие. Если бы была возможность проиграть через алгоритм не меняя значения ячеек. Такая возможность есть Таблица подстановки, но там только два значения можно подставить (пример я присылал). А значений больше то сценарии или макросы!
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34507414
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad SNiLНо хотелось бы разобраться с функцией. Если её запускать не из ячейки (например в окне Immediate) то всё работает нормально. Почему же из ячейки не хочет?! Похоже не понимаю я Excel

Я блин по теории не знаю, но попробуй мыслить логично!
Если функция выполняется в макросе то это последовательность действий, причём каждое действие идёт вслед за предыдущим.

Если использовать функцию на листе тополучится что есть вероятность что сразу несколько функций будут задавать значение одной и той же ячейки. Эксель не допускает этого. Вот и всё.
Тем более нельзя впринципе написалв функцию на листе сделать с книгой какие-то операции, Написав функцию на листе можно лишь вычислить (повлиять) на эту ячейку в которой пишется функция., но не на другие. Если бы была возможность проиграть через алгоритм не меняя значения ячеек. Такая возможность есть Таблица подстановки, но там только два значения можно подставить (пример я присылал). А значений больше то сценарии или макросы!

Как уже объяснил Deggasad, в Excel формулы (с функциями или без) могут исключительно присваивать значения и исключительно ячейкам из которых они вызваны. Формулы не могут создавать или уничтожать объекты на листе, а также менять их свойства (правда до определенного момента в Excel97 можно было вызывать макросы прямо из формулы, но лавочку быстро прикрыли из соображений безопасности).

Существуют немногочисленные исключения типа MsgBox вызываемый пользовательской функцией или вот это: http://j-walk.com/ss/excel/odd/odd06.htm , но они лишь подтверждают правило.

Пользовательские функции вызываемые из VBA - это другое дело. Они имеют те же возможности, что и остальные процедуры, и могут, хотя это и не их задача, производить манипуляции с объектами, в том числе и присваивать значения нескольким ячейкам сразу, ведь гвозди же можно гантелей забивать :-)
...
Рейтинг: 0 / 0
Расчёт в другом листе
    #34513883
SNiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Расчёт в другом листе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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