2015-02-04 2 views
-1

"식별자가 너무 깁니다."라는 문제가 발생했습니다. 이 문제를 해결하려면 어떻게해야합니까? 나는 "_"휴식을 시도했다. 그러나 또 다른 오류가 있습니다 : End bracket이 없습니다. 고마워.식별자가 너무 깁니다.

Sub Netting() 

    Dim Found As Range 
    Dim LR As Long 
    Dim ws As Worksheet 
    Dim cell As Range 
    Dim a As Variant, v As Variant, num 

    Set ws = Sheets("PAYABLES - OUTFLOWS") 

    Set Found = ws.Rows(1).Find(What:="Invoice Amount", _ 
           LookIn:=xlValues, lookat:=xlWhole) 
    If Found Is Nothing Then Exit Sub 

    a = [{"991",1042;"916", 1042;"954",261;"975",3004;"938",726;"901",762;"482",728; _ 
      "482",728;"934",723;"200",724;"201",724;"952",724;"992",3030;"980",3207;"116",626;"939",722;"390",517;"484",548;"339",59;"141",717;"935",59;"994",3370;"140",8408;"950",775;"370", 734 }] 'create 2-d lookup array 

    LR = ws.Cells(ws.Rows.Count, Found.Column).End(xlUp).Row 
    Found.Offset(0, 1).EntireColumn.Insert 
    ws.Cells(1, Found.Column + 1).Value = "Netting" 

    For Each cell In ws.Range(ws.Range("C2"), ws.Cells(LR, 3)) 
     num = CStr(Mid(cell.Value, 3, 3)) 
     v = Application.VLookup(num, a, 2, False) 
     cell.EntireRow.Cells(Found.Column + 1).Value = IIf(IsError(v), "", v) 
    Next cell 

End Sub 

답변

1

줄당 문자 수에는 제한이 있습니다. 훨씬 간단한 방법으로이 작업을 수행 할 수 있습니다. 스프레드 시트 (예 : 'Sheet1') 및 열 A와 B 열에 데이터를 추가하십시오.

Sub Assign2DVector() 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Worksheets("Sheet1") 
    Dim a As Variant 
    a = ws.Range("A1:B20").Value ' set to whatever your actual range is 
End Sub 
+0

이것은 현재 코드의 일부입니다. 내가 작업하고있는 프로젝트에서 새 열을 만들고 다른 열을 기준으로 값을 할당해야합니다. 지금까지 내 작업을 표시하기 위해 원래 게시물을 편집합니다. 감사합니다 –

+0

Hafiz, 다시 코드의 문제는 할당 문이 너무 길다는 것입니다. 따라서 데이터를 하드 코딩하는 대신 별도의 워크 시트 (예 : SourceData)에 추가하고 코드를 사용하십시오. – Jeanno

+0

안녕하세요 jeanno, 정말로 나를 도와주기 위해 시간을 투자하십시오. 나는 아직 확실히 이해하고 있지 않다. 나 한테 설명 해줄 수있어? 나는 VBA 환경에 아직 아주 익숙하다. 건배. –

관련 문제