Мы смотрим на импорт некоторых данных. Существует очень большой сложный лист, в котором некоторые элементы сгруппированы с использованием границ вокруг ячеек в одном столбце. Единственным признаком того, что элементы сгруппированы, является тот факт, что группа окружена рамкой. Разгруппированные элементы не имеют левой и правой границы в ячейке (могут иметь верхнюю и нижнюю границу, поскольку элементы выше и ниже могут быть сгруппированы). В качестве начального упражнения мы хотим добавить столбец, который отображает true, если элемент сгруппирован. Поэтому, если есть граница, отобразите значение, подобное единице. Кто-нибудь знает, возможно ли это?
Можно ли отображать значение на основе наличия границы ячейки?
comment
Да. Это возможно, но не со встроенной формулой. Попробуйте VBA, и мы поможем, когда вы застрянете.
- person Mr. Mascaro   schedule 11.11.2014
comment
Круто - просто не знал Excel достаточно, чтобы знать, если я что-то упустил. Пойду и посмотрю, смогу ли я сделать это в VBA
- person GraemeMiller   schedule 11.11.2014
Ответы (1)
Используйте эту пользовательскую функцию VBA:
Public Function GetBorder(ByVal Rng As Range, Idx As Integer) As Boolean
GetBorder = Rng.Borders(Idx).LineStyle <> xlNone
End Function
Он принимает два аргумента: ячейку и индекс границы (7=слева, 8=снизу, 9=сверху, 10=справа). Возвращает TRUE
или FALSE
. Теперь, если вы хотите получить информацию о нижней границе ячейки A1
, вы должны:
=GetBorder(A1,8)
person
ttaaoossuuuu
schedule
11.11.2014
Любая идея, почему, если я помещу границу в ячейку, результат не обновится, не заходя в ячейку формулы и не нажимая клавишу возврата. Есть ли способ сделать его динамичным - мне это действительно не нужно - просто пытаюсь улучшить свое понимание
- person GraemeMiller; 11.11.2014
Думаю, нет: изменение границы ячейки не является изменчивым событием. Вам нужно будет нажать
F9
для пересчета.
- person ttaaoossuuuu; 11.11.2014