У меня проблема с написанным мною кодом, который работает нормально в моем приложении Desktop Excel, но не работает в Citrix Windows Server 2008 Excel, надеюсь, кто-нибудь мне поможет.
Рабочий лист не может вызвать событие Worksheet_Change для запуска макроса.
Этот файл должен выполнять некоторый проверочный код, когда есть изменения в некоторых определенных столбцах листа, поэтому я использовал Worksheet_Change. Код, который я написал, прекрасно работает на моем настольном приложении Excel и на любом рабочем столе Excel моих коллег, но когда я тестировал тот же код на нашей Citrix, Worksheet_Change просто не срабатывает.
Я попробовал некоторые из часто встречающихся ответов на форумах, активировал application.enableevents, проверил настройки безопасности макросов, но ничего не работает.
Этот код размещен на листах («СОМ»). Рабочий лист:
Public Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim COM As Worksheet
Set COM = ThisWorkbook.Sheets("COM")
On Error Resume Next
COM.Unprotect Password:="****"
On Error GoTo 0
Dim ResColumn As Long
Dim SubResColumn As Long
Dim HeaderRow As Long, Startrow As Long, EndRow As Long
HeaderRow = Sheets("COM").Range("D1").End(xlDown).Row
ResColumn = Sheets("COM").Range("A" & HeaderRow & ":AZ" & HeaderRow).Find("RES", LookIn:=xlValues, LOOKAT:=xlWhole).Column
If Not Intersect(Target, Sheets("COM").Columns(ResColumn)) Is Nothing Then
'Code to be executed
End If
On Error Resume Next
COM .Protect Password:="****", AllowFiltering:=True
On Error GoTo 0
Application.EnableEvents = True
Application.CutCopyMode = False
'Application.ScreenUpdating = True
End Sub
```