3

У меня есть большая таблица Excel (44 столбца, более 1000 строк), но один из столбцов был случайно превращен в вычисляемый столбец (см. Здесь). В результате теперь, когда пользователи пытаются добавить новые строки в таблицу (перетаскивая нижний правый угловой маркер вниз), он неуместно заполняет новые строки этого столбца этой формулой, что приводит к ошибкам электронных таблиц.

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

Как я могу отключить это? При необходимости я могу использовать VBA, однако я не могу избавиться ни от Расчетных столбцов, ни от Автозаполнения для всей таблицы, потому что мы широко используем оба.


Кроме того, как я могу наилучшим образом предотвратить случайное повторение пользователями в будущем? Они должны вводить данные только в первые 10 столбцов, а не в формулы, но, естественно, они не всегда следуют инструкциям ...

2 ответа2

6

Самый быстрый способ, который я нашел для удаления большого числа формул, - это выбрать столбец, скопировать его, а затем вставить его поверх себя, используя функцию Paste Values .

Что касается предотвращения повторения этого повторения пользователями, единственный известный мне способ - использовать функции « Защитить лист» и « Защитить рабочую книгу» . То, будут ли они адаптированы к вашему конкретному сценарию, будет зависеть от того, что вы пытаетесь защитить, и что вам еще нужно разрешить пользователям. Как правило, однако, вы можете ограничить пользователей редактированием только определенных диапазонов, столбцов или строк, заблокировав все остальные ячейки. Существуют варианты, позволяющие пользователям по-прежнему вставлять новые строки, если это необходимо. К сожалению, я не знаю способа блокировки листов, чтобы пользователи могли вводить данные, но не могли добавлять формулы.

Вы можете использовать проверку данных, чтобы добавить входное сообщение, напоминающее пользователям, что не следует вводить формулы. Это не остановит их, но, по крайней мере, будет постоянно напоминать им. Проверка данных также может быть использована, чтобы заставить их ввести определенный тип данных, но это не остановит формулу, которая предоставила правильный тип данных в качестве результата.


ОБНОВИТЬ:

Вы можете явно отклонить формулы в Excel, используя событие Worksheet_Change, например так:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("C:C"), Range(Target.Address)) Is Nothing Then
        If Range(Target.Address).HasFormula Then
            Range(Target.Address).Value = ""
            MsgBox "You may not enter formulas on this sheet!"
        End If
    End If
End Sub

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

2

TechRepublic имеет:

Function IdentifyFormulaCellsUsingCF(rng As Range) As Boolean  
IdentifyFormulaCellsUsingCF = rng.HasFormula
End Function

который можно использовать для выделения (скажем, желтого цвета) и форматирования (скажем, «НЕ ИСПОЛЬЗУЙТЕ ФОРМУЛУ») ячеек с формулами.

Не препятствует вводу формул, но обеспечивает более быстрое предупреждение, чем «Найти»> «Формулы»

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .