Excel不会停止,因为卡在UserForm循环中

时间:2019-05-28 11:25:53

标签: for-loop listbox userform

此代码的想法是复制并粘贴Excel工作表的初始值。我的文件有10张纸,用户通过一个列表框选择要在其中复制数据的其他纸。

由于子程序处于循环状态,因此无法关闭Excel或保存文件。

该问题与Sheets(k)有关,请像我使用Sheets(1)一样激活它,它不会陷入循环。另外,在该子句的末尾,如果我通过单击其中之一来手动更改工作表,它将退出循环并允许我关闭/保存Excel。

由于此文件是针对客户端的,因此我不希望它对用户友好,并且避免像这样的烦人的错误。

现在,我尝试添加一个退出子,最后结束但什么也没发生 我还尝试创建一个If循环,说如果激活Sheets(k),则vba需要停止Sub。

Private Sub CommandButton1_Click()

Dim i As Integer
Dim k As Integer

ActiveSheet.Range("A1:G5").Select   'Selects yellow cells
Selection.Copy  'Copies yellow cells

For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then 'If the value is selected
k = ListBox1.List(i)    'k becomes the selected value
Sheets(k).Activate  'Activates the selected value sheet
Range("A1:G5").Select   'Selects yellow cells
ActiveSheet.Paste   'Pastes initial data

End If

Next i

''***** Selects cell A15 in all sheets (Visual purpose) *******************************

For i = 1 To k
Sheets(i).Activate
Range("A15").Select
Next i

Sheets(k).Activate  'Go to the last duplicated sheet
Application.CutCopyMode = False


End Sub

0 个答案:

没有答案