2016-07-22 1 views
1

У меня есть таблица, где у меня есть лист с названием «Списки», который содержит несколько именованных диапазонов. Эти названные диапазоны являются командами сотрудников. Я установил командную кнопку, где после нажатия она примет значение, введенное в «H30» (имя коллеги), и значение в H31 (имя менеджера), и выберете имя коллеги в списке команд, вырежьте и вставьте их в команду менеджера вошли в «H31» (для менеджеров удобно перемещать людей в другие команды).Excel 2013 вырезать и вставлять в VBA не изменяет размер именованных диапазонов, если последняя запись - это то, что вырезано

Это все, что я настроил, и он отлично работает, при этом Excel автоматически изменяет размеры названных диапазонов таким образом, что все функции, привязанные к ним (т. Е. Комбинированные поля и т. Д.), Все еще работают правильно. Тем не менее, я столкнулся с проблемой, когда коллега является сотрудником LAST в команде. Использование cut/insert в VBA не изменяет размер именованного диапазона, из которого они были вырезаны, оставляя пустое место на конце.

Как я могу изменить размер именованного диапазона, так как он делает это, если имя коллеги вырезано из другого места в именованном диапазоне. Есть ли простой способ сделать это? Если не ниже подход, который я хочу сделать, но я не уверен, как:

Найти который именованный диапазон записи в «H30» появляется в

Если заявление, чтобы проверить, если значение в матчах «H30» последняя запись в указанном диапазоне (Это я работаю)

диапазона изменения размера после сокращения записи (Также есть рабочая)

Определения диапазона коллега исходит от моего главного вопроса, и я попытался с помощью петлю, как показано ниже, для прохождения каждого именованного диапазона:

Dim nm As Name 

For Each nm In Worksheets("Lists").Names 
    If Not Intersect(Range("H30"), nm.RefersToRange) Is Nothing Then 
      'Do things 
    End If 
Next nm 

Я получил вышеупомянутое из примеров в другом месте, но он, кажется, никогда не нашел диапазон. Ошибок не генерируется. Существуют ли другие подходы, которые можно найти, чтобы найти, какой именованный диапазон имеет значение?

ответ

0

найти который именованный диапазон запись в «H30» появляется, используйте Worksheets("Lists").Range("H30").Name.Name

Резка строку/столбец автоматически регулирует динамический диапазон formual. Поэтому, если вы вырезаете что-то со дна/вершины, его нет. Вместо того, чтобы сокращать копии ячеек и четкое содержимое. Надеюсь, вы используете CountA в своем названном диапазоне.

+0

Мне не было известно об использовании. Имени дважды в этом, спасибо. Я также забыл о CountA. Спасибо, это помогло мне закончить то, что мне было нужно. –

Смежные вопросы