我被要求在用户选择的特定单元格值周围显示红色圆圈形状:在我的示例中,如果用户选择值1,2或3.如果是4或5,则只有4或5应该显示。我尝试了一些建议的在线技巧,但我终于陷入无休止的循环。
我遇到的一些要求/问题: 1.我想要覆盖一系列细胞,而无需编写特定的细胞系来处理每个细胞。
我遇到的另一个问题是红圈仍处于选中状态。我希望用户无法格式化或触摸它。它只是难以选择数值。圆圈不应该重新调整大小,而是保持在单元格框的中心。
最后,我不想在电子表格之外存储红色圆圈的图片。希望我不想在不同的纸张上存储100个相同的红色圆圈形状。这与前面提到的问题1有关。
非常感谢任何帮助。到目前为止我的代码:
Private Sub Worksheet_Calculate()
Dim area As Range
Dim cell As Range
Set area = Range("B4:E5")
HideSignals
Select Case cell
Case 1: Shapes("redCircle").Visible = msoTrue
Shapes("redCircle").Select
With Selection
.Left = Range(cell).Left + (Range(cell).Width - Selection.Width) / 2
.Top = Range(cell).Top + (Range(cell).Height - Selection.Height) / 2
End With
ActiveSheet.Range(cell).Select
Case 2: Shapes("redCircle").Visible = msoTrue
Shapes("redCircle").Select
With Selection
.Left = Range(cell).Left + (Range(cell).Width - Selection.Width) / 2
.Top = Range(cell).Top + (Range(cell).Height - Selection.Height) / 2
End With
ActiveSheet.Range(cell).Select
Case 3: Shapes("redCircle").Visible = msoTrue
Shapes("redCircle").Select
With Selection
.Left = Range(cell).Left + (Range(cell).Width - Selection.Width) / 2
.Top = Range(cell).Top + (Range(cell).Height - Selection.Height) / 2
End With
ActiveSheet.Range(cell).Select
End Select
End Sub
----------------------------------------------------------------------
Sub HideSignals()
Shapes("redCircle").Visible = msoFalse
End Sub
--------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim area As Range, cell As Range
Set area = Range("B4:E5")
If Target.Address = area.Address Then
For Each cell In area.Cells
Worksheet_Calculate
Next cell
End If
End Sub