2017-01-23 1 views
2

아래 코드를 사용하여 ListBox에서 Sheet1까지 항목을 추가하고 있습니다. 모든 것이 작동하지만 '추가'를 클릭하면 워크 시트가 새로 고쳐지지 않습니다. 변경 사항 (행 추가) 양식을 닫을 때만 나타납니다.ListBox에서 쓰고 난 후 워크 시트 새로 고침

Private Sub btnAdd_Click() 

    Application.DisplayAlerts = False 
    Application.ScreenUpdating = False 

    Dim wbc As Workbook 
    Dim wsc As Worksheet 

    Set wbc = ActiveWorkbook 
    Set wsc = wbc.Worksheets("Sheet1") 

    Dim addme As Range 
    Dim x, y As Integer 

    Set addme = Application.Selection 

    For x = 0 To Me.lbsourceList.ListCount - 1 
     If Me.lbsourceList.Selected(x) Then 

      addme.Offset(1).EntireRow.Insert    

      wsc.Range(Cells(addme.Row, "C"), Cells(addme.Row, "C")).Offset(1).Value = Me.lbsourceList.List(x, 0) 
      wsc.Range(Cells(addme.Row, "I"), Cells(addme.Row, "I")).Offset(1).Value = Me.lbsourceList.List(x, 1) 

      Set addme = addme.Offset(1, 0) 

     End If 
    Next x 

    For y = 0 To Me.lbsourceList.ListCount - 1 
     If Me.lbsourceList.Selected(y) Then Me.lbsourceList.Selected(y) = False 
    Next y 

End Sub 

코드를 실행 한 후에 워크 시트를 업데이트하거나 새로 고칠 수 있습니까?

+0

워크 북 ("your_wb_name")을 사용해보십시오. RefreshAll' – Wujaszkun

답변

2

양식이 열려 있고 뭔가를하고 있어도 워크 시트가 업데이트되어야합니다. (하는 Userform 하나 ListboxCommandButton)을 아래의 최소한의 예를 참조하십시오

Option Explicit 

Private Sub CommandButton1_Click() 

    Dim lngCounter As Long 
    Dim ws As Worksheet 

    Set ws = ThisWorkbook.Worksheets("Sheet1") 

    For lngCounter = 0 To Me.ListBox1.ListCount - 1 
     ws.Cells(lngCounter + 1, 1).Value = Me.ListBox1.List(lngCounter, 0) 
    Next lngCounter 

End Sub 

Private Sub UserForm_Initialize() 

    Me.ListBox1.AddItem "foo" 
    Me.ListBox1.AddItem "bar" 
    Me.ListBox1.AddItem "baz" 

End Sub 

스크린 샷 : 당신이 다시 ScreenUpdating를 켤 때 당신의 코드에서

enter image description here

, 그것은 분명하지 않다 - 그래서 그것은 알고 있어야 할 것입니다.

+0

로빈에게 조언 해 주셔서 감사합니다. – 4est

관련 문제