ZVI, спасибо, но вариант с созданием нового листа и копированием данных я знаю и не обращалась бы за помощью. Конечно, если не удастся разобраться, так и придется делать, но не хотелось бы: этот вариант не подходит, потому как на данный лист (в файле с моделью, в котором он используется) много ссылок, соответственно, придется заново прописывать и линковать. Кроме того, таких "проблемных" листов несколько, в связи с чем работа увеличивается. Задача - разобраться, где зарыт источник утяжеления, чтобы не прибегая к переносу данных и прописыванию заново формул, его устранить плюс на случай, если проблема вновь возникнет в будущем.
Прошу помощи, т.к. все, что предлагается в качестве методов по уменьшению размера файлов (в т.ч. читала здесь http://www.planetaexcel.ru/techniques/12/114/), не позволило найти причину.
Изначально стала возникать проблема в документе с большим количеством листов и большого размера: на нескольких листах не могу добавить строки, возникает сообщение, что потребуется обновить большое число данных, если принять - файл зависает, а затем и вовсе excel прощается. Тогда один из таких листов скопировала в отдельную книгу, чтобы выявить причину . Оборвала связи с исходным файлом. Однако даже в отдельной книге строки не добавлялись.
Тогда: Удалила все форматы Удалила имена Запустила макрос с поиском скрытых имен, было одно - удалила. Удалила все объекты (кнопки с макросами) Обновила через удаление все строки. (сводных таблиц не было, общего доступа к книге также нет и не было)
Вроде, проверила все, остался пустой лист, но файл весит 2,7 Мб. Где искать? Очень нужно понять причину, чтобы в исходном документе (в модели) восстановить возможность добавления строк на листе.
т.к. диапазон, из которого извлекаются значения, в рабочем файле не всегда начинается с одной и той же строки, над ним могут быть добавлены строки и все съедет.
Спасибо большое!
P.S.: хотя прописать формулу в VBA я не оставляю надежды :)
Спасибо большое, но, видимо, не подходит, потому что в этом файле (как пример) диапазоны в столбце A и B начинаются с 1 строки. В рабочем файле начинаются с другой строки, а формула прописывается вообще на другом листе
Nic70y, сапсибо, но я пробую, ввожу как массивную, выдает во всех строках один и тот же результат (см. файл). Что в данной формуле означает СТРОКА(I1) - ? Ссылка обязательно должна быть на 1ю строку?
Задача следующая: требуется вывести в новом диапазоне те статьи, которые соответствуют определенному условию. Пытаюсь сделать это через функцию, т.к. необходимо, чтобы пересчет происходил автоматически. В итоге при протягивании формулы возникает либо задвоение статей, либо выскакивает через несколько пустых строк, а нужно, чтобы были по порядку. Если зайти и выйти в первую ячейку, то автоматически все становится как нужно, но это не вариант.
Как это исправить и возможно ли? Помогите, пожалуйста. Спасибо
Собственно, код (в файле есть второй вариант):
Код
Public Function ВБРУСЛОВ(диапазон As Range, диапазон_условий As Range, условие As Range, нчлдиапазона As Range)
Dim n As Long
Dim i As Long
Dim c As Variant
Dim a As Long
Dim b As Long
Dim m As Long
Dim k As Long
Set chRng = диапазон
Set condRng = диапазон_условий
Set term = условие
Set begin = нчлдиапазона
n = chRng.Rows.Count
b = begin.Row
a = Application.ThisCell.Row
If a = b Then
m = 0
k = 0
Else
m = a - b
k = a - b - 1
End If
For i = 1 To n
c = chRng(i).Value
Set s = Application.ThisCell.Offset(-m, 0).Resize(Application.ThisCell.Rows.Count + k, Application.ThisCell.Columns.Count).Find(What:=c, LookIn:=xlValues)
If condRng(i).Value = term.Value And s Is Nothing Then
ВБРУСЛОВ = chRng(i).Value
Exit Function
End If
Next i
End Function
Добрый день! Помогите, пожалуйста. В коде листа Сценарии есть макрос (ниже), он работает, но при его наличии на листе Предпосылки перестают работать кнопки Отменить/Вернуть. В чем причина и как устранить проблему? Спасибо!
Код
Private Sub Worksheet_Calculate()
If ThisWorkbook.Worksheets("Сценарии".Range("Scenario_Current" .Value <> If ThisWorkbook.Worksheets("Сценарии" .Range("CurrentCase".Value then
Application.EnableEvents = False
ThisWorkbook.Worksheets("Предпосылки".Range("PropertyTax".Value = ThisWorkbook.Worksheets("Сценарии".Range("PropertyTaxScen".Value
ThisWorkbook.Worksheets("Предпосылки".Range("IncomeTax".Value = ThisWorkbook.Worksheets("Сценарии".Range("IncomeTaxScen".Value
Application.EnableEvents = True
End if
End Sub