Макрос подбор параметра в excel
Добрый вечер.
Вообщем тут такая проблемака. Нужно сделать макрос, я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Красная клетка - число которое будет заданно изначально в условии мы его не трогаем. К примеру 75.
Жёлтая клетка - число которое будем мы подставлять в ручную. В зависимости от этого числа идёт сам расчёт всех зелёных клеток. Так как в зелёных клетках сами формулы, мы их не изменяем.
В последней синей клетке конечное число расчёта и оно должно совпасть с данным в условии числом.
Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке "9" ), подбиралось само что бы число в синей совпадало с заданным(красным "75")
П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Добрый вечер.
Вообщем тут такая проблемака. Нужно сделать макрос, я не прошу сделать его за меня, а хотя бы дать понять, как что и куда.
Красная клетка - число которое будет заданно изначально в условии мы его не трогаем. К примеру 75.
Жёлтая клетка - число которое будем мы подставлять в ручную. В зависимости от этого числа идёт сам расчёт всех зелёных клеток. Так как в зелёных клетках сами формулы, мы их не изменяем.
В последней синей клетке конечное число расчёта и оно должно совпасть с данным в условии числом.
Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке "9" ), подбиралось само что бы число в синей совпадало с заданным(красным "75")
П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда. MaxsimС
Исходя из всего написанного выше, нужно сделать так что бы это число ( в жёлтой клетке "9" ), подбиралось само что бы число в синей совпадало с заданным(красным "75")
П.С. Я начинающий поэтому нечего почти не умею надеюсь на Вас.
П.СС. Я не прошу сделать его за меня, а хотя бы дать понять, как что и куда. Автор - MaxsimС
Дата добавления - 03.11.2014 в 23:16
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза :) Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе "очко". Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл - Параметры Excel - Надстройки - Перейти (File - Excel Options - Add-ins - Go)
- в Excel 2003 и старше - открыть меню Сервис - Надстройки (Tools - Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы "вписаться" в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+. ). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$20;НАИМЕНЬШИЙ(ЕСЛИ(B1:B20=1;СТРОКА(B1:B20);"");СТРОКА()-СТРОКА($E$8)+1));"")
=IFERROR(INDEX($A$1:$A$20;SMALL(IF(B1:B20=1;ROW(B1:B20);"");ROW()-ROW($E$8)+1));"")
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data - Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) - ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию - Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные - Анализ "что-если" - Диспетчер сценариев (Data - What-If Analysis - Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
P.S. Сейчас набегут энтузиасты с мехмата МГУ с криками "Тупой перебор - это неэстетично!" Да, я в курсе, что прямой перебор вариантов - это не самый оптимальный способ поиска. Да, существует много умных алгоритмов поиска решения таких задач, которые сокращают время поиска и находят нужную комбинацию заметно быстрее. Могу даже рассказать про парочку. Но мне на данном этапе существующей скорости "тупого перебора" вполне достаточно - обработка массива из 1000 ячеек идет меньше секунды. Готов подождать :)
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза :) Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе "очко". Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл - Параметры Excel - Надстройки - Перейти (File - Excel Options - Add-ins - Go)
- в Excel 2003 и старше - открыть меню Сервис - Надстройки (Tools - Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы "вписаться" в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+. ). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$20;НАИМЕНЬШИЙ(ЕСЛИ(B1:B20=1;СТРОКА(B1:B20);"");СТРОКА()-СТРОКА($E$8)+1));"")
=IFERROR(INDEX($A$1:$A$20;SMALL(IF(B1:B20=1;ROW(B1:B20);"");ROW()-ROW($E$8)+1));"")
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data - Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) - ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию - Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные - Анализ "что-если" - Диспетчер сценариев (Data - What-If Analysis - Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
P.S. Сейчас набегут энтузиасты с мехмата МГУ с криками "Тупой перебор - это неэстетично!" Да, я в курсе, что прямой перебор вариантов - это не самый оптимальный способ поиска. Да, существует много умных алгоритмов поиска решения таких задач, которые сокращают время поиска и находят нужную комбинацию заметно быстрее. Могу даже рассказать про парочку. Но мне на данном этапе существующей скорости "тупого перебора" вполне достаточно - обработка массива из 1000 ячеек идет меньше секунды. Готов подождать :)
Возникла необходимость написать макрос для "Анализ "что если"" - "Подбор параметра".
Что нужно - макрос инициирует подбор параметра в текущей выделенной ячейке (целевое значение фиксированное), изменяя ячейку, отстающую от текущей на 18 ячеек (столбцов) влево.
Я не разбираюсь в VBA, поэтому, наверное, где-то допустил какую-то синтаксическую или логическую ошибку.
Буду очень благодарен за помощь.
Добавлено через 20 минут
Получилось, когда записал макрос следующим образом:
Макрос для подбора параметра (Данные - Анализ что-если)
Здравствуйте! Возможно ли создать макрос, выполняющий подбор значений? Эту операцию надо.
Скопировать с активной ячейки влево, макрос VBA
Здравствуйте. есть данные в Excel нужно скопировать с активной ячейки лишь из столбца E5:E10, и.
Как узнать номер строки для активной ячейки?
Как узнать номер строки для активной ячейки? спасибо
Как можно узнать backcolor (цвет заливки) для активной ячейки
ActiveCell.BackColor - так не работает, а еще как можно?
Изменение значения фиксированной ячейки в зависимости от активной ячейки
Добрый день. Помогите пожалуйста написать макрос так, чтобы при изменении активной ячейки.
Распределить с применением Подбора параметра
Пожалуйста помогите задача: Есть 3 сотрудника, у них у всех разные оклады (напр., 60000, 45000 и.
Не точное значение подбора параметра
Подскажите, почему при использовании подбора параметра, задав значение допустим 180, Excel может.
Посчитать зарплату с помощью подбора параметра
помогите с задачей, пожалуйста:) В ячейке "на руки" должно получиться число 9125,17руб с.
Мне нужно автоматически подобрать параметр в ячейках (P2;P10) (16), изменяя значения параметра в ячейках (J2;J10) (10) соответственно.
У меня есть программа-макрос подбора параметра в ячейках (G6;G46) (7) при изменении значения параметра в ячейках (D6;D46) (4) соответственно.
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 6).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 3)
Next
End Sub
Эта программа рабочая. Я записал эту программу под свои данные:
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 9)
Next
End Sub
Но она не желает работать. Debug выделяет область
[vba]
[/vba]
Неверная ссылка ошибка 1004.
Не могу найти ошибку.
Саму программу могу представить только в зипованном виде, поскольку она «весит» 258 кб. Но если устроит зипованная, я её выложу.
Мне нужно автоматически подобрать параметр в ячейках (P2;P10) (16), изменяя значения параметра в ячейках (J2;J10) (10) соответственно.
У меня есть программа-макрос подбора параметра в ячейках (G6;G46) (7) при изменении значения параметра в ячейках (D6;D46) (4) соответственно.
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 6).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 3)
Next
End Sub
Эта программа рабочая. Я записал эту программу под свои данные:
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 9)
Next
End Sub
Но она не желает работать. Debug выделяет область
[vba]
[/vba]
Неверная ссылка ошибка 1004.
Не могу найти ошибку.
Саму программу могу представить только в зипованном виде, поскольку она «весит» 258 кб. Но если устроит зипованная, я её выложу. SBK
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 6).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 3)
Next
End Sub
Эта программа рабочая. Я записал эту программу под свои данные:
Sub recount()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
For Each cell In tbl.Cells
cell.Offset(, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(, 9)
Next
End Sub
Но она не желает работать. Debug выделяет область
[vba]
[/vba]
Неверная ссылка ошибка 1004.
Не могу найти ошибку.
Саму программу могу представить только в зипованном виде, поскольку она «весит» 258 кб. Но если устроит зипованная, я её выложу. Автор - SBK
Дата добавления - 19.09.2017 в 21:28
Sub recountWatch()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1)).Select
Stop
СтрокоКомпенсатор = -5
For Each cell In tbl.Cells
cell.Offset(СтрокоКомпенсатор, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(СтрокоКомпенсатор, 9)
cell.Offset(СтрокоКомпенсатор, 15).Select
Stop
cell.Offset(СтрокоКомпенсатор, 9).Select
Next
End Sub
Sub recountWatch()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1)).Select
Stop
СтрокоКомпенсатор = -5
For Each cell In tbl.Cells
cell.Offset(СтрокоКомпенсатор, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(СтрокоКомпенсатор, 9)
cell.Offset(СтрокоКомпенсатор, 15).Select
Stop
cell.Offset(СтрокоКомпенсатор, 9).Select
Next
End Sub
Sub recountWatch()
Set tbl = ActiveSheet.[a5].CurrentRegion
Set tbl = Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1))
Range(ActiveSheet.[a6], tbl.Cells(1, 1).Offset(tbl.Rows.Count - 1)).Select
Stop
СтрокоКомпенсатор = -5
For Each cell In tbl.Cells
cell.Offset(СтрокоКомпенсатор, 15).GoalSeek Goal:=1, ChangingCell:=cell.Offset(СтрокоКомпенсатор, 9)
cell.Offset(СтрокоКомпенсатор, 15).Select
Stop
cell.Offset(СтрокоКомпенсатор, 9).Select
Next
End Sub
InExSu'y
Это будет работать в exsel 2003?
Я почему спрашиваю? На русском "строкоКомпенсатор". Эта функция есть в 2003?
InExSu'y
Это будет работать в exsel 2003?
Я почему спрашиваю? На русском "строкоКомпенсатор". Эта функция есть в 2003? SBK
Не знаю. В Excel будет. Функции нет, это переменная.
Код написан, чтобы вы в процессе отладки увидели, где у Вас кончаются данные .
Не знаю. В Excel будет. Функции нет, это переменная.
Код написан, чтобы вы в процессе отладки увидели, где у Вас кончаются данные . InExSu
Не знаю. В Excel будет. Функции нет, это переменная.
Код написан, чтобы вы в процессе отладки увидели, где у Вас кончаются данные . Автор - InExSu
Дата добавления - 20.09.2017 в 09:58
[/vba]
т.е. на выполнении самой операции подбора параметров и то же заявление об ошибке.
С другой стороны, я одну ошибку у себя нашёл в прежнем макросе. Я использовал числовой формат данных, а оказывается нужно было в общем формате считать Кроме того, я заменил [a5] [a6] на [a1] [a2] соответственно. При этом старая программка посчитала первые 20 строк и остановилась, хотя строки не прерывались. Вручную подбор работает в любой строке. Не подскажете почему это может быть?
[/vba]
т.е. на выполнении самой операции подбора параметров и то же заявление об ошибке.
С другой стороны, я одну ошибку у себя нашёл в прежнем макросе. Я использовал числовой формат данных, а оказывается нужно было в общем формате считать Кроме того, я заменил [a5] [a6] на [a1] [a2] соответственно. При этом старая программка посчитала первые 20 строк и остановилась, хотя строки не прерывались. Вручную подбор работает в любой строке. Не подскажете почему это может быть? SBK
[/vba]
т.е. на выполнении самой операции подбора параметров и то же заявление об ошибке.
С другой стороны, я одну ошибку у себя нашёл в прежнем макросе. Я использовал числовой формат данных, а оказывается нужно было в общем формате считать Кроме того, я заменил [a5] [a6] на [a1] [a2] соответственно. При этом старая программка посчитала первые 20 строк и остановилась, хотя строки не прерывались. Вручную подбор работает в любой строке. Не подскажете почему это может быть? Автор - SBK
Дата добавления - 20.09.2017 в 14:16
Читайте также: