此代码的想法是复制并粘贴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