Сбой VBA при добавлении формулы в несколько ячеек - PullRequest
0 голосов
/ 07 марта 2019

при использовании приведенного ниже кода мой Excel зависает без ошибок (мне нужно приостановить код и завершить работу, чтобы снова использовать Excel. - Странно то, что я могу запускать каждое обновление по отдельности, и оно будет работать нормально.когда все они активны, он перестает работать.

любой совет?

Private Sub Worksheet_Change(ByVal Target As Range)
With ThisWorkbook
Dim Country As String
Country = .Sheets("Views").Range("C2").Text

Select Case Country
Case Is = "Australia"
.Sheets("Views").Range("C5").Formula = "=Volume!B7+Volume!H7+Volume!N7+Volume!T7+Volume!Z7+Volume!AF7"
.Sheets("Views").Range("C6").Formula = "=Volume!C7+Volume!I7+Volume!O7+Volume!U7+Volume!AA7+Volume!AG7"
.Sheets("Views").Range("C7").Formula = "=Volume!D7+Volume!J7+Volume!P7+Volume!V7+Volume!AB7+Volume!AH7"
.Sheets("Views").Range("C8").Formula = "=Volume!E7+Volume!K7+Volume!Q7+Volume!W7+Volume!AC7+Volume!AF7"

Case Is = "China"
'do china
End Select
End With
End Sub

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я также обнаружил, что добавление следующего в начале также помогло, таким образом, код только инициировал обновления, когда конкретная ячейка, которую я хотел изменить, была изменена, т.е. выбор страны

If Not Application.Intersect(Range("C2"), Range(Target.Address)) Is Nothing Then
'code you want exicuted
End If
0 голосов
/ 08 марта 2019

спасибо Variatus, вы были на 100% правы.Предполагая, что код находится в кодовой таблице Sheets («Представления»), событие Change, однажды вызванное, вызовет события Change в результате изменений, которые он создает на листе, что приведет к бесконечному циклу, который, вероятно, в конечном итоге закончится "недостаточно памяти".Чтобы избежать этого, установите Application.EnableEvents = False до внесения каких-либо изменений и установите для свойства значение True после того, как все изменения будут выполнены.- вчера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...