我不认为这在技术上是一个宏,但我不知道还有什么可以称之为:
用户希望从工作表上的报表中打印单个部分.这些部分只是命名范围.
一些要点:
我在工作表的边缘创建了一系列按钮:
' in a loop
With ActiveSheet.Buttons.Add(rngCurrent.Left + 2, rngCurrent.Top + 1, rngCurrent.Width - 2, rngCurrent.Height - 1)
.Caption = "Print"
.OnAction = "PrintRange"
.Font.Size = 7
.Name = CStr(oSite.SiteID)
End With
Run Code Online (Sandbox Code Playgroud)
但是,当我点击按钮时,它会显示"无法运行宏'filename.xls!PrintRange".
PrintRange函数位于工作表shtPage中,而循环位于名为modPage的模块中.
为什么我不能调用我需要的功能以及如何使其工作?
即使您的PrintRange子声明为Public,您仍然需要更具体地引用它,以便Excel可以找到它,因为您已将它放在工作表的代码部分而不是模块中.
更改:
.OnAction = "PrintRange"
Run Code Online (Sandbox Code Playgroud)
至
.OnAction = "shtPage.PrintRange"
Run Code Online (Sandbox Code Playgroud)
它会工作得很好.
警告:如果您已将页面选项卡上的工作表重命名为"shtPage",但在VBA项目资源管理器中,Excel仍将工作表称为"Sheet1(shtPage)",则需要使用"Sheet1"名称Excel识别,而不是页面选项卡上显示的"shtPage"名称.
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |