从一个文件调用另一个用户窗体

雪利酒

将调用一个Excel文件的UserForm的VBA代码编写到文件夹中存在的所有其他Excel文件中,john并且主Excel(由以下代码和用户窗体组成)位于不同的位置:

 Private Sub Workbook_OnClick()
    Dim mypath As String
    Dim file As String
    Dim wb As Workbook
    Dim pat As String
    Application.ScreenUpdating = False
    ChDrive "C:"
    ChDir "C:\Users\Administrator\Desktop\John"
    'john is a folder that consists of the excel files 
    mypath = Range("B1").Value
    'mypath has the same value as chDir
    file = Dir(mypath & "\" & "*.xlsx")
    Do While file <> ""
        Set wb = Application.Workbooks.Open(file)
        If Not IsEmpty(wb) Then
            Application.Visible = False
            userform1.Show
        End If
        wb.Close
        file = Dir()
    Loop
End Sub

该代码将用户窗体拉到主Excel文件上,而不是文件john夹中存在的Excel文件中

戴维·泽门斯

包含要显示的用户窗体的工作簿还应该具有一个显示窗体的过程。您将需要调用过程以显示用户表单。它可以是函数,也可以是子函数,我更喜欢函数,因为这样您可以返回成功/失败的错误处理。

在UserForm工作簿中,您将在Module1(或任何模块中,添加一个类似这样的过程,但稍后需要引用此过程):

Public Function ShowTheForm(Optional Modal As Boolean = False)
    'API to display a userform in THIS workbook, from another workbook

     On Error Resume Next
     UserForm1.Show IIF(Modal,vbModal,vbModeless)
     ShowTheForm = (Err.Number = 0)
End Function

然后,在试图打开此表单的工作簿中,您将需要调用该ShowTheForm过程,如下所示:

Do While file <> ""
    Set wb = Application.Workbooks.Open(file)
    If Not IsEmpty(wb) Then
        Application.Visible = False
        Application.Run("'" & wb.Name & "'!Module1.ShowTheForm")
    End If
    wb.Close
    file = Dir()
Loop

因为您已经给定ShowTheForm了带有返回值的函数,所以您可以捕获错误,例如:

If Not Application.Run("'" & wb.Name & "'!Module1.ShowTheForm") Then
    MsgBox "Unable to display..."
    Exit Sub
End If

根据此处提供的一般逻辑进行修改/增强:

http://answers.microsoft.com/zh-cn/office/forum/office_2007-excel/how-do-you-open-userform-in-another-workbook/e97b2c06-2a79-4cef-89bc-4f67b0f3c03a?db= 5&auth = 1

笔记

我认为IsEmpty这不是对工作簿对象的适当测试,您可能需要考虑一下。我不确定您要使用该行做什么,但是我几乎可以肯定它没有按照您的想法去做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从一个JavaScript文件调用需要另一个函数的函数

来自分类Dev

如何从一个js文件调用函数到另一个

来自分类Dev

将 .bashrc 文件从一个用户的目录复制到另一个用户的目录

来自分类Dev

如何在Azure中从一个csx文件调用函数到另一个csx文件?

来自分类Dev

在postgresql中从一个文件调用存储过程到另一个文件

来自分类Dev

从一个终端用户向另一个用户发送消息

来自分类Dev

将文件所有权从一个用户更改为第一个用户控制的另一个用户

来自分类Dev

将对象作为参数从用户窗体传递到另一个用户窗体

来自分类Dev

CQ | 将用户从一个CQ实例迁移到另一个

来自分类Dev

将AD用户从一个OU移到另一个OU

来自分类Dev

如何从一个活动访问用户输入到另一个类?

来自分类Dev

如何从一个Google Apps脚本调用另一个函数?

来自分类Dev

在Python中从一个函数调用变量到另一个函数

来自分类Dev

调用外部函数(从一个exe到另一个exe)

来自分类Dev

如何从一个组件调用另一个组件的函数?反应

来自分类Dev

Python:如何从一个函数调用另一个函数的属性?

来自分类Dev

调用外部函数(从一个exe到另一个exe)

来自分类Dev

从一个函数调用变量到另一个函数

来自分类Dev

我无法从一个函数调用对象到另一个函数

来自分类Dev

将变量从一个ajax调用传递到另一个

来自分类Dev

如何从一个类调用方法到另一个类

来自分类Dev

如何从一个类到另一个类调用方法

来自分类Dev

如何从一个类调用另一个类的函数?

来自分类Dev

你如何从一个应用程序调用另一个视图

来自分类Dev

将创建日期从一个文件传输到另一个文件

来自分类Dev

将php变量从一个文件传递到另一个文件?

来自分类Dev

从一个文件到另一个文件的静态变量访问

来自分类Dev

如何从一个文件找到另一个文件中的单词?

来自分类Dev

将数据从一个文件关联到另一个文件

Related 相关文章

  1. 1

    从一个JavaScript文件调用需要另一个函数的函数

  2. 2

    如何从一个js文件调用函数到另一个

  3. 3

    将 .bashrc 文件从一个用户的目录复制到另一个用户的目录

  4. 4

    如何在Azure中从一个csx文件调用函数到另一个csx文件?

  5. 5

    在postgresql中从一个文件调用存储过程到另一个文件

  6. 6

    从一个终端用户向另一个用户发送消息

  7. 7

    将文件所有权从一个用户更改为第一个用户控制的另一个用户

  8. 8

    将对象作为参数从用户窗体传递到另一个用户窗体

  9. 9

    CQ | 将用户从一个CQ实例迁移到另一个

  10. 10

    将AD用户从一个OU移到另一个OU

  11. 11

    如何从一个活动访问用户输入到另一个类?

  12. 12

    如何从一个Google Apps脚本调用另一个函数?

  13. 13

    在Python中从一个函数调用变量到另一个函数

  14. 14

    调用外部函数(从一个exe到另一个exe)

  15. 15

    如何从一个组件调用另一个组件的函数?反应

  16. 16

    Python:如何从一个函数调用另一个函数的属性?

  17. 17

    调用外部函数(从一个exe到另一个exe)

  18. 18

    从一个函数调用变量到另一个函数

  19. 19

    我无法从一个函数调用对象到另一个函数

  20. 20

    将变量从一个ajax调用传递到另一个

  21. 21

    如何从一个类调用方法到另一个类

  22. 22

    如何从一个类到另一个类调用方法

  23. 23

    如何从一个类调用另一个类的函数?

  24. 24

    你如何从一个应用程序调用另一个视图

  25. 25

    将创建日期从一个文件传输到另一个文件

  26. 26

    将php变量从一个文件传递到另一个文件?

  27. 27

    从一个文件到另一个文件的静态变量访问

  28. 28

    如何从一个文件找到另一个文件中的单词?

  29. 29

    将数据从一个文件关联到另一个文件

热门标签

归档