Как, при наличии множества объектов, оптимально найти и удалить один или несколько объектов находящихся в заданном диапазоне листа?
Собственно
Для простоты объект полностью в ячейке.
вариант 1
Перебор всех объектов и
Смущает, что если объектов сотни, а надо удалить один, то перебор по всем. В используемом решении идет замена сгенерированного баркода в случае изменения кода, а это означает что сперва удаляем ранее созданный объект , если он есть) потом создаем новый, но даже если объекта не было (генерация просто нового баркода) то проверяем все объекты, а нет ли в нужной ячейке. С учетом того что вставляется разово пачка значений, то впустую крутим.
вариант 2
Удаляем полностью ячейку со сдвигом , и вставляем пустую с обратным сдвигом.
Смущает дерготня, которая может быть даже более медленной, чем перебор всех
Какие еше есть варианты?
Собственно
Для простоты объект полностью в ячейке.
вариант 1
Перебор всех объектов и
Код |
---|
If Not Intersect(Shape.TopLeftCell, Cell) Is Nothing Then Shape.Delete End If |
Смущает, что если объектов сотни, а надо удалить один, то перебор по всем. В используемом решении идет замена сгенерированного баркода в случае изменения кода, а это означает что сперва удаляем ранее созданный объект , если он есть) потом создаем новый, но даже если объекта не было (генерация просто нового баркода) то проверяем все объекты, а нет ли в нужной ячейке. С учетом того что вставляется разово пачка значений, то впустую крутим.
вариант 2
Удаляем полностью ячейку со сдвигом , и вставляем пустую с обратным сдвигом.
Смущает дерготня, которая может быть даже более медленной, чем перебор всех
Какие еше есть варианты?
По вопросам из тем форума, личку не читаю.