2016-08-28 3 views
1

임에 다음 두 가지 문제가 있습니다. 목록 상자에 아무 것도 표시되지 않을 때까지 제대로 작동합니다. 오류 메시지가 나타납니다. 두 번째는 목록 상자에 데이터를 새로 고칩니다.비어있는 경우 목록 상자에 오류가 발생합니다.

내가 가진 것.

Private Sub UserForm_Initialize() 

Dim tiempoa As Date 
Dim tiempob As Date 
Dim tiempoc As Date 

Dim seguimiento As Long, i As Long 
Dim Data() As Variant 
Dim cell As Range 


With Me.ListBox1 
    .ColumnCount = 6 
    .ColumnWidths = "40;82;117;117;60;180" 
End With 

i = 1 
With Hoja2 
    With .Range("T2:T" & .Cells(.Rows.Count,"B").End(xlUp).Row).SpecialCells(xlCellTypeConstants) 
     seguimiento = .Count 
     ReDim Data(1 To seguimiento + 1, 1 To Me.ListBox1.ColumnCount) 

     Data(1, 1) = "FOLIO" 
     Data(1, 2) = "NOMBRE" 
     Data(1, 3) = "APELLIDO PATERNO" 
     Data(1, 4) = "APELLIDO MATERNO" 
     Data(1, 5) = "HORAS" 
     Data(1, 6) = "DIAGNOSTICO DE TRIAGE" 

     For Each cell In .Cells 
      i = i + 1 
      With cell 
       Data(i, 1) = .Offset(, -19) 
       Data(i, 2) = .Offset(, -17) 
       Data(i, 3) = .Offset(, -16) 
       Data(i, 4) = .Offset(, -15) 
          tiempoa = .Offset(, -18).Value 
          tiempob = Now 
          tiempoc = Format(tiempoa - tiempob, "hh:mm") 
       Data(i, 5) = tiempoc 
       Data(i, 6) = .Offset(, -3) 
      End With 
     Next cell 
    End With 
End With 

ListBox1.List = Data 
End Sub 
+0

하는 라인이 오류 메시지를? 언제 당신은 목록 상자 데이터를 새로 고치시겠습니까? – user3598756

+0

사용자 폼을 초기화 할 때 목록 상자에 표시 할 조건이없는 데이터가 있으면 오류가 발생합니다. –

+0

답변을 참조하고 알려주세요. BTW 나는 [이] (http://stackoverflow.com/questions/39187965/listbox-selection-to-edit-worksheet) 게시물에 귀하의 의견을 보내고 싶습니다. 고맙습니다 – user3598756

답변

1

장소 당신이 목록 상자를 채우려는 범위에 카운트 체크, 다음과 같은 :

Option Explicit 

Private Sub UserForm_Initialize() 

    Dim tiempoa As Date 
    Dim tiempob As Date 
    Dim tiempoc As Date 

    Dim seguimiento As Long, i As Long 
    Dim Data() As Variant 
    Dim cell As Range 


    With Me.ListBox1 
     .ColumnCount = 6 
     .ColumnWidths = "40;82;117;117;60;180" 
    End With 

    i = 1 
    With Hoja2 
     With .Range("T2:T" & .Cells(.Rows.Count, "B").End(xlUp).row) 

      If WorksheetFunction.Count(.Cells) = 0 Then Exit Sub '<--| if no cells in referenced range then exit sub 

      With .SpecialCells(xlCellTypeConstants) 
       seguimiento = .Count 
       ReDim Data(1 To seguimiento + 1, 1 To Me.ListBox1.ColumnCount) 

       Data(1, 1) = "FOLIO" 
       Data(1, 2) = "NOMBRE" 
       Data(1, 3) = "APELLIDO PATERNO" 
       Data(1, 4) = "APELLIDO MATERNO" 
       Data(1, 5) = "HORAS" 
       Data(1, 6) = "DIAGNOSTICO DE TRIAGE" 

       For Each cell In .Cells 
        i = i + 1 
        With cell 
         Data(i, 1) = .Offset(, -19) 
         Data(i, 2) = .Offset(, -17) 
         Data(i, 3) = .Offset(, -16) 
         Data(i, 4) = .Offset(, -15) 
            tiempoa = .Offset(, -18).value 
            tiempob = Now 
            tiempoc = Format(tiempoa - tiempob, "hh:mm") 
         Data(i, 5) = tiempoc 
         Data(i, 6) = .Offset(, -3) 
        End With 
       Next cell 
      End With 
     End With 
    End With 

    Me.ListBox1.List = Data 

End Sub 
관련 문제