Excel не остановится, потому что застрял в цикле UserForm - PullRequest
0 голосов
/ 28 мая 2019

Идея этого кода состоит в том, чтобы скопировать и вставить начальные значения для листа 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
...