我想做的是,当我单击特定的 Excel 文本区域时,它会立即隐藏它。
我试过这个=>
Sub ZoneTexte2_Cliquer()
ActiveSheet.Shapes("ZoneTexte2").Visible = False
End Sub
但我对 VBA 脚本的了解并不多。
我想做的是,当我单击特定的 Excel 文本区域时,它会立即隐藏它。
我试过这个=>
Sub ZoneTexte2_Cliquer()
ActiveSheet.Shapes("ZoneTexte2").Visible = False
End Sub
但我对 VBA 脚本的了解并不多。
如果您使用形状的“分配宏”菜单项分配了宏,那么您的代码几乎是正确的。
尝试ActiveSheet.Shapes(Application.Caller).Visible = False
假设您首先将其分配给所有形状,它可以用作所有形状单击事件的通用处理程序。
如果您想直接使用它们的名称,您可能需要使用以下内容来获取它们的正确名称以供以后使用。
msgbox Prompt:=ActiveSheet.Shapes(Application.Caller).Name
如果您在宏中单击带有该代码的形状,它将显示一个包含其正确名称的消息框,对于文本区域形状,它通常是“文本框 N”(空格和大写字母很重要)
一些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