我写的代码在我的Desktop Excel应用程序上运行顺利,但是在Citrix Windows Server 2008 Excel上却无法运行,希望有人能帮助我。
工作表无法触发Worksheet_Change事件来触发宏。
当工作表的某些特定列发生更改时,此文件应执行一些验证代码,因此我使用了Worksheet_Change。我编写的代码在我的桌面Excel应用程序和同龄人的任何桌面Excel上都可以完美运行,但是当我在Citrix上测试相同代码时,Worksheet_Change不会触发。
我在论坛上尝试了一些常见的答案,激活了application.enableevents,检查了宏的安全性设置,但似乎没有任何作用。
此代码放在工作表(“ COM”)上。
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
```