从 ListBox 写入后刷新工作表
Refresh worksheet after writing from ListBox
我正在使用下面的代码将项目从 ListBox
添加到 Sheet1
。一切正常,但在我单击 "add" 后,工作表没有刷新。只有在关闭表单时我才能看到更改(添加的行)。
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
代码是运行后工作表可以是updated/refreshed吗?
即使表单打开并正在执行某些操作,工作表也应该更新。请参阅下面的最小示例(带有 Userform
、一个 Listbox
和一个 CommandButton
):
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
时不清楚 - 所以这是需要注意的事情。
我正在使用下面的代码将项目从 ListBox
添加到 Sheet1
。一切正常,但在我单击 "add" 后,工作表没有刷新。只有在关闭表单时我才能看到更改(添加的行)。
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
代码是运行后工作表可以是updated/refreshed吗?
即使表单打开并正在执行某些操作,工作表也应该更新。请参阅下面的最小示例(带有 Userform
、一个 Listbox
和一个 CommandButton
):
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
时不清楚 - 所以这是需要注意的事情。