首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到屏幕对象

找不到屏幕对象
EN

Stack Overflow用户
提问于 2018-03-14 03:29:14
回答 1查看 222关注 0票数 0

我在Excel中有一个项目。我有一个带子加载的模块,用Excel表中的数据填充ActiveForm,该表被标记为进入相应的表单。其思想是,无论哪个表单处于活动状态,我都可以调用Load并从Excel表中获取数据。

我正在尝试使用这段简单的代码来获取活动窗体的名称,就像我在许多示例中看到的那样

代码语言:javascript
运行
复制
Debug.Print Screen.activeform.Name

但是,找不到Screen对象。我收到“变量未定义”错误。这是可以通过引用添加的东西吗?我已经到处找过了。或者,我可以将对"Me“的引用传递给模块吗?

下面是我在模块中的代码,用于填充用户打开的任何表单:

代码语言:javascript
运行
复制
Public Sub Load()

Dim rw As Long

Set wb = ThisWorkbook
Set wsInputs = wb.Worksheets("Inputs")
Set loInputs = wsInputs.ListObjects("tInputs")

With loInputs
    For rw = 1 To .DataBodyRange.Rows.Count
        If .ListColumns("Form").DataBodyRange.Rows(rw) = screen.activeform Then
            screen.activeform.Controls(.ListColumns("Control Name").DataBodyRange.Rows(rw).Value) _
            = .ListColumns("Value").DataBodyRange.Rows(rw).Value
        End If
    Next rw
End With

End Sub

不同的表单只是输入到文本和组合框中的不同类别的数据,它们在表单和Excel之间来回读取,如果Excel中有数据,并且用户打开该表单,则该表单是预先填充的。

我可以包括一个屏幕截图,但它只是一堆标签和输入框。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-03-14 04:48:38

通过让函数将表单作为参数接受,我可以让它正常工作:

代码语言:javascript
运行
复制
Public Sub LoadData(frmLoad As Object)

并简单地将我传递给函数:

代码语言:javascript
运行
复制
LoadData Me

也许这是糟糕的设计,但它是有效的。因此,我不需要在每个表单中都包含LoadData函数。

哑光

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

https://stackoverflow.com/questions/49264413

复制
相关文章

相似问题

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