首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Office 2010 UserForm处理MultiPage控件中的页面

Office 2010 UserForm处理MultiPage控件中的页面
EN

Stack Overflow用户
提问于 2011-05-17 21:53:29
回答 1查看 5.3K关注 0票数 1

我目前正在进行从Office2002 SP3到Office2010的迁移工作。

在大量使用VBA的Excel工作簿中,我遇到了以下问题:

以下函数在2002年的工作方式类似于charme,但在使用2010打开时会崩溃。

代码语言:javascript
复制
Private Function fktSeeall()
   Dim pPage As Page, cCont As Control, mpMultiPage As Control

   If Seeall Then
       cbButton2.Caption = "Leere ausblenden"
   Else
       cbButton2.Caption = "Alle anzeigen"
   End If
   For Each mpMultiPage In Me.Controls
       If TypeName(mpMultiPage) = "MultiPage" Then
           For Each pPage In mpMultiPage.Pages
               pPage.Visible = Seeall
               For Each cCont In pPage.Controls
                   If TypeName(cCont) = "TextBox" And cCont.Text <> "" Then
                       pPage.Visible = True
                       mpMultiPage.Value = Right(pPage.Name, 1) - 1
                   End If
               Next cCont
           Next pPage
       End If
   Next
End Function

布尔值Seeall设置在函数外部。所有页面都包含一个文本框。如果seeall设置为false,则隐藏除带有已填充文本框的页面外的所有页面。如果设置为true,则再次显示所有页面。

Office 2010在For Each pPage In mpMultiPage.Pages行失败,错误消息代码为13“类型不匹配”

它也会失败,如果我使用

代码语言:javascript
复制
For Each pPage In MultiPage1.Pages
    pPage.Visible = Seeall
    For Each cCont In pPage.Controls
        If TypeName(cCont) = "TextBox" And cCont.Text <> "" Then
            pPage.Visible = True
            MultiPage1.Value = Right(pPage.Name, 1) - 1
        End If
    Next cCont
Next pPage

我不明白为什么新的office版本在我代码的这个阶段失败了。

这是UserForm的屏幕截图:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-18 03:56:48

好了,想明白了!

从Excel 2007开始,对象模型有一个名为Page的对象,该对象与Forms Page不同。

使用Dim pPage As msforms.Page而不是Dim pPage As Page显式引用表单页属性

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6031832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档