2016-09-11 5 views
0
Sub test() 
    Dim rng As Range 
    Dim not_rng As Variant 
    Set rng = Sheets("Test").Range("A1:B2") 
    Debug.Print TypeName(rng) 
    not_rng = rng 
    Debug.Print TypeName(not_rng) 
End Sub 

код, приведенный выше принтамиСохранение объекта Range в Variant

Range 
Variant() 

Я хотел бы, чтобы напечатать Range, Variant.

+0

Возможный дубликат [Тип ввода изменяется, если вывод не записан] (http://stackoverflow.com/questions/39442431/input-type-changes-if-output-not-captured) – Prisoner

+0

@Alex, ну, я бы дважды задавайте один и тот же вопрос;) – user357269

ответ

1

Ах, я пропускал Set ключевое слово:

Sub test() 
    Dim rng As Range 
    Dim not_rng As Variant 
    Set rng = Sheets("Test").Range("A1:B2") 
    Debug.Print TypeName(rng) 
    Set not_rng = rng 
    Debug.Print TypeName(not_rng) 
End Sub 

Теперь она печатает

Range 
Range 

, что делает больше смысла.

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