Ребята, есть большой массив данных B7:ANQ35. Он содержит в себе константы и формулы (в т.ч. обновляющиеся из других таблиц). При изменении 7-й строки меняется значение 35ой в каждом столбце. Необходмо выполнять в каждом столбце подбор параметров. Проблема в том, что когда столбцов было около 100 я прописал макросом поочередное выполнения подбора: [vba]
[/vba] Но теперь диапазон слишком большой и хоть я и прописал его руками (через автозамену на 30 страниц:), но мне выдало ошибку procedure too large. Есть же простой выход из ситуации? VB не изучал просто, эксель использую на уровне пользователя. Помогите плз!:) Спасибо!
Ребята, есть большой массив данных B7:ANQ35. Он содержит в себе константы и формулы (в т.ч. обновляющиеся из других таблиц). При изменении 7-й строки меняется значение 35ой в каждом столбце. Необходмо выполнять в каждом столбце подбор параметров. Проблема в том, что когда столбцов было около 100 я прописал макросом поочередное выполнения подбора: [vba]
[/vba] Но теперь диапазон слишком большой и хоть я и прописал его руками (через автозамену на 30 страниц:), но мне выдало ошибку procedure too large. Есть же простой выход из ситуации? VB не изучал просто, эксель использую на уровне пользователя. Помогите плз!:) Спасибо!NiZiM
Сообщение отредактировал NiZiM - Среда, 29.08.2018, 17:04
- Прочитайте Правила форума - Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)
- Прочитайте Правила форума - Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 100кб согласно п.3 Правил форума - Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)_Boroda_
_Boroda_, дело в том, что у меня исходный файл 400кб+ и содержит связи с другими файлами. Попробую для примера сделать отдельную таблицу, но обязательно ли это? Так решение не видно? Остальное исправил.
_Boroda_, дело в том, что у меня исходный файл 400кб+ и содержит связи с другими файлами. Попробую для примера сделать отдельную таблицу, но обязательно ли это? Так решение не видно? Остальное исправил.NiZiM
Вариант с автоматическим определением последнего заполненного столбца [vba]
Код
Public Sub Param() Dim lastcol&, i& lastcol = Cells(1, Columns.Count).End(xlToLeft).Column For i = 2 To lastcol Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i) Next i End Sub
[/vba]
Вариант с автоматическим определением последнего заполненного столбца [vba]
Код
Public Sub Param() Dim lastcol&, i& lastcol = Cells(1, Columns.Count).End(xlToLeft).Column For i = 2 To lastcol Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i) Next i End Sub
Ребята, огромное спасибо за помощь! Скачал ВБА для чайников. Буду осваивать:) А такой еще момент подскажите, плз. У меня главная таблица с запуском просчета на одном листе, а процедура выполняется на другом. Как мне это отразить в коде? Сейчас раелизовал это так: [vba]
Код
Sub newnew()
Dim i As Integer Sheets("System1").Select Range("B7:ANQ7") = "0" For i = 2 To 1057 Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i) Next i Sheets("Main").Select ' End Sub
[/vba]
Я предположил, что можно сделать, так, но выдает ошибку: [vba]
Код
Sub newnew() Dim i As Integer Range("System1. B7:ANQ7") = "0" For i = 2 To 1057 Cells("System1. 34, i").GoalSeek Goal:=0.03, ChangingCell:=Cells("System1.7, i") Next i ' End Sub
[/vba]
Спасибо!
Ребята, огромное спасибо за помощь! Скачал ВБА для чайников. Буду осваивать:) А такой еще момент подскажите, плз. У меня главная таблица с запуском просчета на одном листе, а процедура выполняется на другом. Как мне это отразить в коде? Сейчас раелизовал это так: [vba]
Код
Sub newnew()
Dim i As Integer Sheets("System1").Select Range("B7:ANQ7") = "0" For i = 2 To 1057 Cells(34, i).GoalSeek Goal:=0.03, ChangingCell:=Cells(7, i) Next i Sheets("Main").Select ' End Sub
[/vba]
Я предположил, что можно сделать, так, но выдает ошибку: [vba]
Код
Sub newnew() Dim i As Integer Range("System1. B7:ANQ7") = "0" For i = 2 To 1057 Cells("System1. 34, i").GoalSeek Goal:=0.03, ChangingCell:=Cells("System1.7, i") Next i ' End Sub
NiZiM, [offtop]а чего у Вас данные так странно организованы? Обычно добавляются строки, а не столбцы — их больше на листе и прокручивать легче.
NiZiM, [offtop]а чего у Вас данные так странно организованы? Обычно добавляются строки, а не столбцы — их больше на листе и прокручивать легче.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.