0

我想做的是,当我单击特定的 Excel 文本区域时,它会立即隐藏它。

我试过这个=>

Sub ZoneTexte2_Cliquer()
   ActiveSheet.Shapes("ZoneTexte2").Visible = False
End Sub

但我对 VBA 脚本的了解并不多。

4

2 回答 2

1

如果您使用形状的“分配宏”菜单项分配了宏,那么您的代码几乎是正确的。

尝试ActiveSheet.Shapes(Application.Caller).Visible = False

假设您首先将其分配给所有形状,它可以用作所有形状单击事件的通用处理程序。

如果您想直接使用它们的名称,您可能需要使用以下内容来获取它们的正确名称以供以后使用。

msgbox Prompt:=ActiveSheet.Shapes(Application.Caller).Name

如果您在宏中单击带有该代码的形状,它将显示一个包含其正确名称的消息框,对于文本区域形状,它通常是“文本框 N”(空格和大写字母很重要)

于 2013-03-31T13:28:13.250 回答
1

一些vba...

Public OrigColumn As Integer
Public OrigRow   As Integer
Public OrigValue As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Cells.Count = 1 Then

    If OrigColumn = 0 And OrigRow = 0 And OrigValue = "" Then
        ' first time usage, there is no history selection...
    Else
        ' show the original value when enter out the cell
        Cells(OrigRow, OrigColumn).Value = OrigValue
    End If

    OrigColumn = Target.Column
    OrigRow = Target.Row
    OrigValue = Target.Value

    Target.Value = Null
  End If
End Sub
于 2013-03-31T13:34:33.257 回答