【问题标题】:Can I hide/show the black border around a selected cell?我可以隐藏/显示选定单元格周围的黑色边框吗?
【发布时间】:2012-07-25 01:40:22
【问题描述】:

如果我们使用功能区 UI 保护工作表,并且如果每个单元格都被锁定或未启用任何选择,则矩形光标会消失。

但由于我有一些单元格与用户交互,我不会锁定每个单元格。现在矩形只出现在未锁定的单元格上。

由于我必须使这些锁定的单元格可以通过 VBA 选择,因此添加了以下代码:

Worksheets("sheet1").Protect Password:="******", _
    UserInterfaceOnly:=True

现在由于 VBA 可以选择每个单元格,无论锁定或解锁,矩形光标无处不在。

现在我希望隐藏矩形本身;有可能吗?

【问题讨论】:

  • 可能有点太快了。请详细说明您正在尝试做的事情。
  • @user1543250:如果你想隐藏矩形光标,那么用户如何知道哪个是活动单元格?
  • @SiddharthRout 在我的回答下方查看我的评论和 OP 的回复。
  • @DougGlancy:在我理解实际查询之前,我不得不重新阅读很多次(不确定我是否仍然理解正确)用户希望 Excel 不显示你在什么时候得到的黑色矩形你为解锁的单元格选择了一个单元格?
  • @SiddharthRout 是的,没有黑色矩形,类似于如果 EnableSelection 是 xlNoSelection,但可以选择未锁定的单元格。这个问题已经被编辑了几次。当我回答时,这只是如何让它像在“保护”对话框中取消选中“选择解锁的单元格”一样。

标签: vba excel


【解决方案1】:

添加这段代码:

Worksheets("sheet1").EnableSelection = xlNoSelection

【讨论】:

  • 您的问题是“如果我们使用功能区 UI 保护工作表,并且如果没有解锁单元格,则该矩形光标将消失。”现在你说你不会锁定每个单元格。哪个是真的?无论如何,这是我能想到的唯一方法。
  • 我认为你做不到。此外,对用户隐藏光标似乎是个坏主意。这只会让他们很难看到他们在做什么。祝你好运!
  • 您是否在整个代码中使用 select 和 active 语句?
【解决方案2】:

我不能让它完全消失,但我可以很好地隐藏它。 我从评论中注意到您突出显示当前单元格,因此添加到突出显示的这段代码应该有助于隐藏光标:

' Code generated by record macro, and not tidied up
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .ColorIndex = xlAutomatic
    .TintAndShade = 0
    .Weight = xlThick
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

这将把边框变成黑色,当单元格被选中时它会变成白色(带有非常细的黑色轮廓)。

另一种方法是将所有单元格更改为具有灰色粗轮廓,以便在选中框时具有相同的颜色轮廓。以编程方式,对代码的更改将是删除 colorindex 行,并添加

    .ThemeColor = 1

取而代之,并将 TintAndShade 行更改为:

    .TintAndShade = -0.5

无论使用哪种方法,您最终都会在当前单元格中看到一条细黑线。

【讨论】:

    【解决方案3】:

    没有办法真正隐藏矩形。

    【讨论】:

    • 这不是添加到 vba 中的功能,实际上没有太多可添加的。当然,您可以尝试通过以任何方式替换它来解决它,但要回答这个问题,不,不可能在 excel-vba 中显示/隐藏黑色选择框
    【解决方案4】:

    1) 隐藏一列

    2) 移动到 A1

    【讨论】:

      【解决方案5】:

      我不知道这是谁写的,所以我可以给予信任,但它似乎有效。

      Private Declare Function ShowCursor Lib "USER32" _ 
      (ByVal fShow As Integer) As Integer 
      
      Sub hide() 
          While ShowCursor(False) >= 0 
          Wend 
      End Sub 
      
      Sub show() 
          While ShowCursor(True) < 0 
          Wend 
      End Sub 
      

      【讨论】:

      • 我知道,但就我而言,它是为了隐藏光标。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-09
      • 1970-01-01
      • 2011-01-22
      • 2023-03-26
      • 1970-01-01
      • 2011-01-04
      • 2019-12-18
      相关资源
      最近更新 更多