2016-11-10 139 views
1

它是一个受保护的工作表/工作簿,我有一个代码会向用户提示是否编辑表单。单元格是可编辑的,但问题是单元格没有用边框突出显示。因此,用户很难知道他正在处理哪些单元格。VBA单元格没有突出显示

我在这里有两张纸,Corefiller和Ad-filler,如果在corefiller纸上的下拉是“否”。用户在选择工作表时会得到一个提示,他点击确定编辑工作表,或者如果他不想编辑则取消。

上表代码 “的Ad-填料”

Option Explicit 

Private mMessageDisplayed As Boolean 

Private Sub Worksheet_Activate() 
    Carry 
End Sub 

代码的模块上。

Public Sub Carry() 
    If ActiveSheet.ProtectContents And Not mMessageDisplayed Then 
      mMessageDisplayed = True 
    If ThisWorkbook.Sheets("Corefiller").Range("E29") = "NO" Then 
      If MsgBox("Click OK to include Filler for this request", vbOKCancel + vbInformation) = vbOK Then 
       ThisWorkbook.Worksheets("Corefiller").Range("E29") = "YES" 
       With ThisWorkbook.Sheets("Ad-filler") 
        .Range("E13:E14").Locked = False 
       End With 
      Else 
       With ThisWorkbook.Sheets("Ad-filler") 
        .Range("E13:E14").Locked = True 
       End With 
      End If 
     Else 
     Exit Sub 
     End If 
    End If 
    End Sub 

我的代码有什么问题?为什么细胞没有被突出显示。如果我尝试在代码中使用保护/取消保护,第一个表单上的单元格(Corefiller)将不会突出显示,我必须单击其他表单并返回以突出显示单元格。

enter image description here

+1

您有边框应用到任何细胞(们)没有,行代码。 –

+1

@ Gary'sStudent我的意思是我们点击单元格时的常用边框,附上上面的截图。 – sady

+2

你也没有代码**选择**任何单元格*(将应用边框)* –

回答

0

能重新启动,实现这个并检查是否仍然存在问题:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

    Cells.Interior.ColorIndex = 0 
    Target.Interior.ColorIndex = 3 

End Sub 
+0

使用上面的代码。是的,细胞将被突出显示为红色,但不幸的是不能解决我的问题。因为我的目的不是为细胞添加颜色。 – sady

+0

我知道,我只是认为SelectionChange事件被阻塞了。 – Vityata

相关问题