2017-11-08 10 views
2

새 컬렉션에 값의 범위를 가져 오려고합니다. 범위는 고정되어 있으며 빈 셀은 건너 뛴 것으로 가정되고 셀에 내용이 추가됩니다. 그러나, 나는VBA 컬렉션 - 정적 범위에서 컬렉션으로 값을 읽으십시오.

이 라인에

"ISINsLX0358 = ThisWorkbook.Sheets("Splits_Vormonat").Range("B3:BK3")" 

누군가가 이런 일이 왜 말해 나를 도와 드릴까요 "변수 또는 With 블록 변수가 설정되지 않은 객체"라는 오류가 발생합니다 내 코드 개선?

Dim collLX0358 As New Collection 
Dim ISINsLX0358 As Range 

Set collLX0358 = Nothing 

ISINsLX0358 = ThisWorkbook.Sheets("Splits_Vormonat").Range("B3:BK3") 

For Each isin In ISINsLX0358 
    If isin <> "" Then 
     coll.Add isin 
    End If 
Next isin 

답변

0

짜잔 : Set colLX0358 = Nothing의 생각은 무엇

  • Option Explicit를 사용

    Option Explicit 
    
    Public Sub TestMe() 
    
        'Dim collLX0358 As New Collection - you are not using it, -> you do not need it. 
        Dim ISINsLX0358 As Range 
    
        Dim isin  As Range 
        Dim coll  As New Collection 
        'Set collLX0358 = Nothing - WHY? 
    
        Set ISINsLX0358 = ThisWorkbook.Sheets(1).Range("B3:BK3") 
    
        For Each isin In ISINsLX0358 
         If isin <> "" Then 
          coll.Add isin 
         End If 
        Next isin 
    
    End Sub 
    

    • 시작. 당신이 그것을 사용하지 않는 한, 코드에서 제거하십시오.
    • Range는 빠른 응답을위한 Set
  • +1

    감사 VBA의 개체이며이 단어를 사용해야합니다! 매력처럼 작동합니다! – s00zie

    +0

    @ s00zie - 환영합니다! :) – Vityata