从另一个工作表运行宏脚本导致错误

时间:2015-04-17 07:57:18

标签: excel vba excel-vba

我有一些代码用于通过一些VBA脚本在另一个工作表中找到一个按钮,如果按钮文本包含“隐藏所有行”,则执行代码,否则执行其他代码。

if语句工作并识别按钮文本,但它似乎不想识别targetworkbook中的宏名称。我收到错误'找不到具有指定名称的项目'

我检查了targetworkbook宏名称是否正确, 代码在下面,我在这里做错了吗?

Sub MapValues(targetworkbook As Workbook, TargetSheet As Worksheet)
Dim shp as shape
Set shp = TargetSheet.Shapes("Button13" & TargetSheet.Name)

With targetworkbook
   If shp.TextFrame.Characters.Text = "Hide All Rows" Then
      targetworkbook.Application.Run "'" & targetworkbook.Name & "'!showAllRows"
   Else
      targetworkbook.Application.Run "'" & targetworkbook.Name & "!hideAllRows"
      targetworkbook.Application.Run "'" & targetworkbook.Name & "!showAllRows"
   End If
End With


End Sub()

1 个答案:

答案 0 :(得分:0)

看起来问题在于文本“Button13”。仔细检查它是不是真的像“按钮13”。最简单的方法是使用即时窗口类型

?sheet1.Shapes(1).name

继续2,3,4等等,直到得到你的名字。