试图给 Excel 中的形状一个 name/title
Trying to give a name/title to a shape in Excel
我正在尝试从另一个工作簿中复制一个子例程,原始工作簿中的子例程可以正常工作,但我的不行。两个子例程的语法相同
子:
Sub FigurMedTittel_Klikk()
Dim Tittel As String
Tittel = ActiveSheet.Shapes(Application.Caller).Title
Select Case Tittel
Case "BME"
Range(Tittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "BMA"
Range(Tittel).EntireRow.Hidden = False
Range("BME").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "Kompleks"
Range(Tittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
End Select
End Sub
sub 的要点是通过单击形状来显示或隐藏与形状标题具有相同定义名称的一系列行。问题似乎是我找不到给形状(矩形)一个标题的方法。
当我尝试 运行 代码时,出现错误“Run-time 错误‘-2147352571 (80020005)’”。我是 VBA 的新手,这是我第一次在 Whosebug 中提问。我希望这是可以理解的。
我阅读 .Title
属性 时运气不佳 - 您可以使用形状或其 AlternativeText
中的文本(通过 Excel 绘图工具设置> 格式 > 替代文字)
Sub FigurMedTittel_Klikk()
Dim shp As Shape, txt
txt = Application.Caller
'or one of these other methods...
'Set shp = ActiveSheet.Shapes(Application.Caller)
'txt = shp.TextFrame2.TextRange.Text
'txt = shp.AlternativeText
For Each r In Array("BME.", "BMA.", "Kompleks.")
Range(Replace(r, ".", "")).EntireRow.Hidden = (txt <> r)
Next r
End Sub
我稍微修改了一下,现在可以用了。我认为问题是不再可能给形状一个标题。新子程序:
Sub FigurMedTittel_Klikk()
Dim Tittel As String
Dim RowTittel As String
Tittel = ActiveSheet.Shapes(Application.Caller).Name
RowTittel = Replace(Tittel, ".", "")
Select Case Tittel
Case "BME."
Range(RowTittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "BMA."
Range(RowTittel).EntireRow.Hidden = False
Range("BME").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "Kompleks."
Range(RowTittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
End Select
结束子
我正在尝试从另一个工作簿中复制一个子例程,原始工作簿中的子例程可以正常工作,但我的不行。两个子例程的语法相同 子:
Sub FigurMedTittel_Klikk()
Dim Tittel As String
Tittel = ActiveSheet.Shapes(Application.Caller).Title
Select Case Tittel
Case "BME"
Range(Tittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "BMA"
Range(Tittel).EntireRow.Hidden = False
Range("BME").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "Kompleks"
Range(Tittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
End Select
End Sub
sub 的要点是通过单击形状来显示或隐藏与形状标题具有相同定义名称的一系列行。问题似乎是我找不到给形状(矩形)一个标题的方法。
当我尝试 运行 代码时,出现错误“Run-time 错误‘-2147352571 (80020005)’”。我是 VBA 的新手,这是我第一次在 Whosebug 中提问。我希望这是可以理解的。
我阅读 .Title
属性 时运气不佳 - 您可以使用形状或其 AlternativeText
中的文本(通过 Excel 绘图工具设置> 格式 > 替代文字)
Sub FigurMedTittel_Klikk()
Dim shp As Shape, txt
txt = Application.Caller
'or one of these other methods...
'Set shp = ActiveSheet.Shapes(Application.Caller)
'txt = shp.TextFrame2.TextRange.Text
'txt = shp.AlternativeText
For Each r In Array("BME.", "BMA.", "Kompleks.")
Range(Replace(r, ".", "")).EntireRow.Hidden = (txt <> r)
Next r
End Sub
我稍微修改了一下,现在可以用了。我认为问题是不再可能给形状一个标题。新子程序:
Sub FigurMedTittel_Klikk()
Dim Tittel As String
Dim RowTittel As String
Tittel = ActiveSheet.Shapes(Application.Caller).Name
RowTittel = Replace(Tittel, ".", "")
Select Case Tittel
Case "BME."
Range(RowTittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "BMA."
Range(RowTittel).EntireRow.Hidden = False
Range("BME").EntireRow.Hidden = True
Range("Kompleks").EntireRow.Hidden = True
Case "Kompleks."
Range(RowTittel).EntireRow.Hidden = False
Range("BMA").EntireRow.Hidden = True
End Select
结束子