2016-06-22 4 views
0

Я искал этот код и не могу понять, почему я продолжаю получать требуемую ошибку. Я пытаюсь добавить новый лист, место, массив и диапазон в листе (это работает). Затем я хочу назвать все ячейки на листе именем переменной, которое будет использоваться позже. Может ли кто-нибудь понять, почему он не работает?Excel VBA Object Обязательная ошибка

Set WS_Temp = Sheets.Add 
With WS_Temp 
    .Range(Cells(1, 1), Cells(1, LastColRA)) = Sheet1.Range("Dynamic_Range").Value 
    .Range(Cells(2, 1), Cells(counter + 1, LastColRA)) = Application.Transpose(vList) 
    '.Range(Cells(1, 1), Cells(counter + 1, LastColRA)) = Selected_Range 
    '.Range(Selection, Selection.SpecialCells(xlLastCell)).Select = Selected_Range 
End With 

Set Selected_Range = WS_Temp.Range(Selection, Selection.SpecialCells(xlLastCell)).Value ***ERRORS HERE 
+0

У меня есть Dimed WS_Temp как рабочий лист и Selected_Range As Range ранее .. FYI – Liz

+2

Можете ли вы попробовать снять «.Value»? –

+0

[Не используйте '.Select'] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros), это, скорее всего, его часть. Кроме того, не используйте 'Value' в конце. Вы просто устанавливаете 'Range()', а затем, если вам нужно значение диапазона, сделайте 'Selected_Range.Value'. – BruceWayne

ответ

1

Can you try taking off the .Value? – Matt Cremeens

Set ключевое слово используется для назначения объект ссылается. Используя его для назначения значения выдает ошибку, которую вы получаете, «Требуется объект».

И это именно то, что вы делаете здесь:

Set Selected_Range = WS_Temp.Range(Selection, Selection.SpecialCells(xlLastCell)).Value 

Вы пытаетесь присвоить Selected_Range объект значениеWS_Temp.Range(...), что вы не можете сделать юридически. Удалите .Value, и вы назначите Selected_Range a ссылка, указав на объект Range, который был возвращен этим Range, на ваш WS_Temp лист.

+0

Я получаю ошибку Run-Time '381' Не удалось установить свойство Column. Недопустимый индекс массива свойств – Liz

+0

@Liz не воспроизводится здесь, возможно, сначала нужно проверить «Выбор»? отлично работает здесь. 'Range' является параметризованным элементом' Property Get' 'Worksheet'; получение этой ошибки означает, что вы даете ей недопустимые параметры. Убедитесь, что 'Selection' находится в листе' WS_Temp'. –

+0

* Предполагая, что вы получаете эту ошибку в этой конкретной строке. Избегайте проблем, избегайте работы с 'Selection', см. Связанный пост @BruceWayne. –

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