2015-05-27 3 views
1

У меня возникла проблема со ссылкой на столбец рядом с именованным диапазоном (NamedRange имеет ширину всего в 1 колонку). Я использовал следующий код, чтобы вставить столбец:Получить столбец и номер строки для именованного диапазона

.sheets("sheet1").Range("NamedRange:NamedRange").EntireColumn.Insert

Это работает, но вставляет столбец перед NamedRange. Это не имеет значения, если я добавлю

shift:=xlToRight или shift:=xlToLeft

Она игнорирует меня и вставляет столбец влево.

Пара вопросов:

  1. Как я могу вставить столбец справа от NamedRange?
  2. Как я могу ссылаться на строку 1 нового столбца, чтобы поместить заголовок в новый столбец? Другими словами, как найти адрес новой ячейки столбца (row1, column ???)? И как я могу извлечь новый адрес столбца NamedRange?

ответ

2

Как я могу вставить столбец справа от NamedRange?

Используйте .Offset, чтобы достичь того, чего вы хотите.

Thisworkbook.Sheets("Sheet1").Range("NamedRange").offset(,1).EntireColumn.Insert 

как я могу ссылаться на строку 1 нового столбца, чтобы поместить заголовок в мой новый столбец?

Работа с Range Object

Sub Sample() 
    Dim rngNm As Range, NewRng As Range 

    Set rngNm = ThisWorkbook.Sheets("Sheet1").Range("NamedRange") 

    rngNm.Offset(, 1).EntireColumn.Insert 

    Set NewRng = rngNm.Offset(, 1) 

    Debug.Print NewRng.Address '<~~ New Columsn Address 
    Debug.Print NewRng.Cells(1,1).Address '<~~ 1st Cell in the range 
End Sub 
+0

Спасибо. Первая линия отлично работает. У проблемы есть проблема. В наборе rngNm = ThisWorkbook.Sheets («Sheet1»). Range («NamedRange») Я получаю сообщение об ошибке «1004, ошибка, зависящая от приложения или объекта». Какие-либо предложения? –

+0

Вы заменили «NamedRange» на фактический именованный диапазон? –

+0

duh !!!!!!!!!!!! Благодарю. Сожалею. –