Vba 从列表框写入后刷新工作表

Vba 从列表框写入后刷新工作表,vba,excel,listbox,refresh,updates,Vba,Excel,Listbox,Refresh,Updates,我使用下面的代码将项目从列表框添加到Sheet1。一切正常,但单击“添加”后,工作表不会刷新。只有在关闭表单时才能看到的更改(添加的行) Private Sub btnAdd_Click() Application.DisplayAlerts = False Application.ScreenUpdating = False Dim wbc As Workbook Dim wsc As Worksheet Set wbc = ActiveWorkb

我使用下面的代码将项目从
列表框添加到
Sheet1
。一切正常,但单击“添加”后,工作表不会刷新。只有在关闭表单时才能看到的更改(添加的行)

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

运行代码后是否可以更新/刷新工作表?

即使表单已打开并正在执行某些操作,工作表也应更新。请参见下面的最小示例(使用
用户表单
、一个
列表框
和一个
命令按钮
):

截图:

在您的代码中,不清楚何时重新打开
屏幕更新
,因此需要注意。

您可以尝试
工作簿(“您的\u wb\u名称”)。刷新所有
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