Performance Excel 2007 VBA:SelectionChange事件的性能

Performance Excel 2007 VBA:SelectionChange事件的性能,performance,vba,excel,excel-2007,Performance,Vba,Excel,Excel 2007,对于Excel中的以下VBA代码,是否有任何有意义的方法来提高性能 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Me.Range("Group1"), Target) Is Nothing Then With wksData .Range("Group1Column").Value = Target.Column .Range("Group

对于Excel中的以下VBA代码,是否有任何有意义的方法来提高性能

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect(Me.Range("Group1"), Target) Is Nothing Then

     With wksData
       .Range("Group1Column").Value = Target.Column
       .Range("Group1Row").Value = Target.Row
     End With
   End If

End Sub
我添加了条件格式,用于查看group1列和Group1Row命名范围。我不知道我的性能问题是否与过度使用SelectionChange或条件格式有关,但我想消除一个明显的滞后

条件格式是超基本的(类似于Column($D3)=Group1Column),它仅用于“吸引眼球”的目的,但它对整个解决方案是有帮助的

我尝试过一些事情:。屏幕更新、.EnableEvents、.Calculations。屏幕更新确实确保了用户在选择下一个单元格之前必须等待,但这并不是我所想的


任何提示都会有帮助

对我来说闪电很快。工作簿中还有很多其他计算吗?您使用的是什么版本?

请定义Group1、Group1列、Group1Row。Group1、Group1Column和Group1Row只是excel中的命名范围。组1是一个3 x 7单元格的范围。Group1Column是存储当前选择的列的范围,Group1Row是存储当前选择的行的范围。我将这些值存储在范围中,以便使用条件格式。我想完全在代码中复制条件格式逻辑是可能的,但是如果可能的话,我想避免,我不确定它会更快。好吧,那我就得对这件事做两次调查,因为这对我来说绝对不是闪电般的快 就统计数据而言,工作簿只有29个公式,它们是非易失性的(只是索引函数)。我使用的是XL 2007,我的系统内存为2gigs,是3ghz范围内的纯英特尔处理器。。。我承认有点困惑。我会测试然后回来。谢谢你的确认。具有讽刺意味的是,我把上面的代码删去了,以便它对我的帖子有意义,当我重新测试它时(从我发布的代码开始),它就像你描述的那样工作。我在代码中添加了复杂性,删除了一些冗余,在每次添加时都进行了测试,现在它似乎工作得很好。哦,而且,“.EnableEvents=False”本身(不需要屏幕更新或计算更改)也有助于减少一些微秒。再次感谢!没有什么比拆掉某个东西、重新构建它、无法重现问题更糟糕的了:)但我很高兴你让它工作起来了。