2014-12-05 5 views
0

2 개의 Variant 변수를 하나의 Variant 또는 문자열로 결합하는 방법에 대한 아이디어가 있습니다. 아래를 찾기 위해 행은 다음과 같습니다변수를 조인 할 때 형식이 일치하지 않습니다.

SelectColumnsRows = DisplayColumns & DisplayRows 

내가 때문에 ws.Range (SelectColumnsRows)와 함께 ALL 기타 사항 서보 -OFF를 사용하는 것을 시도의 오류 형식이 일치를 얻을. 어떤 도움이 될 것입니다. 감사합니다

Sub previewSub() 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     Call previewDisplayColumnRow(ws) 

    Next 
    MsgBox "Click on each Worksheets to preview columns/rows which will be displayed after clicking on 'UPDATE LAYOUT'" 
End Sub 

Sub previewDisplayColumnRow(ws As Worksheet) 

    Dim DisplayColumns  As Variant 
    Dim DisplayRows   As Variant 
    Dim HideColumnsRows  As Variant 
    Dim SelectColumnsRows As String 

    Dim myrange 

    Set myrange = Worksheets("Control").Range("range_sheetProperties") 

    'Lookup Worksheet name and identify columns & rows to display 
    HideColumnsRows = Application.VLookup(ws.Name, myrange, 5, False) 
    DisplayColumns = Application.VLookup(ws.Name, myrange, 6, False) 
    DisplayRows = Application.VLookup(ws.Name, myrange, 7, False) 

    SelectColumnsRows = DisplayColumns & DisplayRows 

    'Preview Columns/Rows which will be hidden 
    If Not IsError(HideColumnsRows) Then 

      If HideColumnsRows = "Y" Then 
      'MsgBox ws.Name & " - " & SelectColumnsRows 
      ws.Activate 
      ws.Range(SelectColumnsRows).Select 
      End If 
    End If 

End Sub 
+0

VLOOKUP의 두 결과를 결합하기 전에 오류가 있는지 확인하십시오. 다음 URL을 확인하십시오. http://stackoverflow.com/questions/11555728/how-to-vlookup-get-n-a-value-in-vba –

답변

0

변수 DisplayColumns 및 DisplayRows에 오류 값이있는 것으로 보입니다.

코드에서 'HideColumnsRows'의 오류를 검사하므로 오류가 발생할 것으로 예상됩니다. 확인하기 전에 'HideColumnsRows', 'DisplayColumns'및 'DisplayRows'를 사용하면 안됩니다.

다음과 같이 오류를 피하기 위해 코드를 수정했습니다. 시도해 봐.

Sub previewSub() 
    Dim ws As Worksheet 

    For Each ws In ActiveWorkbook.Worksheets 
     Call previewDisplayColumnRow(ws) 

    Next 
    MsgBox "Click on each Worksheets to preview columns/rows which will be displayed after clicking on 'UPDATE LAYOUT'" 
End Sub 

Sub previewDisplayColumnRow(ws As Worksheet) 

    Dim DisplayColumns  As Variant 
    Dim DisplayRows   As Variant 
    Dim HideColumnsRows  As Variant 
    Dim SelectColumnsRows As String 

    Dim myrange 

    Set myrange = Worksheets("Control").Range("range_sheetProperties") 

    'Lookup Worksheet name and identify columns & rows to display 
    HideColumnsRows = Application.VLookup(ws.Name, myrange, 5, False) 

    If Not IsError(HideColumnsRows) Then 'If no error. 
     DisplayColumns = Application.VLookup(ws.Name, myrange, 6, False) 
     DisplayRows = Application.VLookup(ws.Name, myrange, 7, False) 

     SelectColumnsRows = DisplayColumns & DisplayRows 

     'Preview Columns/Rows which will be hidden 

     If HideColumnsRows = "Y" Then 
      'MsgBox ws.Name & " - " & SelectColumnsRows 
      ws.Activate 
      ws.Range(SelectColumnsRows).Select 
     End If 
    Else 'Error: ws.name is not included in myrange. 
     MsgBox ws.Name & " does not exist in sheet property information. Skipped.") 'Message for explain the error. 
    End If 

End Sub 
+0

답변 해 주신 모든 분들께 감사드립니다. 이제 내 코드로 이동할 수있다 :-) –

0

만약 기회 두 VLOOKUP의 반환 오류 중 하나, 즉에 의해 "#의 N/A"를 문자열로 할당을 시도하는 동안 유형 불일치 오류가 발생합니다.

관련 문제