切换用户select的单元格周围的“突出显示的边界”

我有一些代码为用户生成一个简单的Excel模板。 代码locking并保护不在“A2:A”中的所有单元格,并使其不可选。 但是,在此代码运行后,用户将不再获取围绕选定单元格的突出显示。 有什么方法可以确保在代码中启用?

With ws1 .Protect UserInterfaceOnly:=True .EnableSelection = xlUnlockedCells With .Cells .Locked = True .Borders.Color = vbWhite End With With .Columns("A") .Locked = False .Borders.Color = vbBlack .ColumnWidth = 20 End With With .Range("A1") .Value = "MPID" .Interior.Color = 14277081 .HorizontalAlignment = xlCenter .Locked = True End With End With 

处理限制Excel工作表时,您必须以相反的逻辑来处理它。 一旦您单击或激活限制工作表的macros,所有内容都将被默认限制。 因此,您首先必须先select单元格或范围上的“locking”值并将其更改为false。 然后你应该把所有的东西都放在你想要的位置,最后一步是主动限制纸张。 这应该给你你想要的:

 Sub Test() Dim ws1 As Worksheet Set ws1 = Sheets("Sheet1") 'unprotect the column that you don't want to restrict Columns("A:A").Select Selection.Locked = False Selection.FormulaHidden = False With ws1.Range("A1") .Value = "MPID" .Interior.Color = 14277081 .HorizontalAlignment = xlCenter End With With ws1.Columns("A") .Borders.Color = vbBlack .ColumnWidth = 20 End With ws1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ws1.EnableSelection = xlUnlockedCells Set ws1 = Nothing End Sub