Excel - VBA:将变量从子传递到用户窗体

2023-11-23

我已阅读并应用了在类似主题上找到的解决方案,但似乎对我的情况没有任何作用。

因此,我想将一个变量从 Module1 的一个子模块传递到用户窗体。这是一个名为“provinceSugg”的字符串。

这是我的代码的相关部分:

Public provinceSugg As String

Sub probaCity()
[...]
If province = "" And city <> "" Then
provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value
UserForm2.Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
UserForm2.Label1.TextAlign = fmTextAlignCenter
UserForm2.Show
Else
End If

End Sub

然后在我的用户表单代码中:

Private Sub userformBtn1_Click()

MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg

End Sub

当我运行我的程序时:

1/我的子进程调用的 MsgBox 中显示了provinceSugg 的内容(因此有一个provinceSugg,它不是一个空变量)。
2/从用户窗体调用的 MsgBox 是空的(因此传递值失败),当运行“ sMain.Range("J6").Value = ProvinceSugg”时,我的程序崩溃,并带有“Error 424 Object required”之类的内容(因此变量未能传递到用户表单)。

我尝试了在论坛和此处找到的所有内容(以不同的方式表明provinceSugg是一个公共变量,但仍然崩溃......)。

在此先感谢您的帮助 !


您将能够在用户表单中创建可由模块设置的公共变量。

这些变量只能在加载用户表单时访问。

在用户窗体中,为两个对象声明公共变量。

Public sMain As Worksheet
Public provinceSugg as string

Private Sub userformBtn1_Click()

MsgBox provinceSugg
sMain.Range("J6").Value = provinceSugg

End Sub

在该模块中,您可以评估这两个变量。

Sub probaCity()
[...]
If province = "" And city <> "" Then

    provinceSugg = sCurrent.Cells(p, db_column).Offset(0, 1).Value

    With UserForm2
        .provinceSugg = provinceSugg 
        Set .sMain = sMain 
        .Label1 = "Do you mean " & city & " in " & provinceSugg & " ?"
        .Label1.TextAlign = fmTextAlignCenter
        .Show
    End With

End If

End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel - VBA:将变量从子传递到用户窗体 的相关文章

  • 如何在 VB.NET 中将 DataGridView 导出为 Excel 格式

    我使用 OLE 通过 VB NET 连接到数据库 并在 DataGridView 中显示结果 我想将 DataGridView 中的数据导出到 Excel 格式文件 即用户可以将 DataGridView 的内容保存为 MS Excel 文
  • 遍历 Excel 工作表

    这是我的代码 我是 VBA 新手 所以我不确定如何迭代多个页面 这是我的代码 Dim ws As Worksheet Sub spellCheck For Each ws In ActiveWorkbook Worksheets Cells
  • 挖泥机子集 (MuMIn) - 如果存在主效应,则必须包括交互作用

    我正在使用 dredge MuMIn 进行一些探索性工作 在此过程中 我想将两个变量设置为仅当它们之间存在相互作用时才允许一起出现 即它们不能仅作为主要效果一起出现 使用样本数据 我想挖掘模型 fm1 尽管它可能没有意义 如果变量 GNP
  • 用一行代码隐藏所有自动筛选下拉列表

    我有一个相当大的 Excel 文件 其中包含大量数据 我使用验证列表 该列表通过 VBA 生成过滤器 因为我有 52 列 一年中的每周一列 所以我会自动在每个标题中看到一个小下拉箭头 我使用这段代码手动隐藏每列的下拉箭头 Worksheet
  • 将字符串中的一个字符替换为另一个字符

    我有如下数据 A B C D 我想更换C与数据 例如 Z 这样它可能看起来像 A B Z D 我该怎么做 SUBSTITUTE A1 C Z 虽然我不清楚你是否想要G or Z 你提到G但你的示例输出显示Z
  • Excel vba 创建范围的所有可能组合

    我有一个问题 我无法在网络上的任何地方找到它 它可能在那里 但我找不到它 呵呵 我有一个包含 13 列数据的电子表格 每列都包含需要进入整体测试用例的参数的变体 它们都不同 比如 E 101 105 110 120 J Upper S上行L
  • 将范围传递给 Excel 用户定义函数并将其分配给数组

    我在尝试着 通过两个范围 多行单列 Excel 2007 中的用户定义函数 然后将其分配给一个数组进行处理 谁能告诉我如何将这样的范围分配给数组 范围不是恒定的 因为我在不同的单元格中使用 UDF 来处理不同的数据 所以我不能使用 e g
  • 如何查找 Outlook .pst 文件的完整路径?

    有没有办法通过 API 调用或注册表项以编程方式查找当前用户的 Outlook pst 文件的位置 With 展望赎回 http www dimastr com redemption 您可以使用 VBA 迭代消息存储RDOStores集合
  • 使用 access VBA 将列表框项目添加到数组

    我在访问表单中有一个列表框 它包含 18 项 我如何使用 access vba 将这些项目存储到数组中 下面将把列表框的内容拉入数组并吐出内容 Dim Size As Integer Size Me List0 ListCount 1 Re
  • Java 会话变量

    我听说有些人认为在会话中将信息存储在服务器上是一个坏主意 因为它不安全 因此 在多页面业务流程功能中 应用程序将数据写入数据库 然后在需要时检索信息 在会话中存储私人信息是否一定不安全 只要会话本身安全 在会话中存储属性就不存在安全风险劫持
  • 使用 Microsoft Graph API 从 Sharepoint 站点提取 Excel.xlsx 工作簿

    正如标题中所述 我一直在尝试使用 Microsoft Graph API 从我们公司的 Sharepoint 站点提取 Excel 工作簿 我能够检索文件的元数据 但是当我添加 workbook 分段到 URL 我收到以下错误 error
  • 如何使用波斯日期(Shamsi)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想直接使用 Excel 2007 工作表中的波斯日期 Hijri Shamsi 作为计算基础 这怎么可能 我将通过以下方式将波斯日期转换
  • 以编程方式创建验证列表

    我有一组从外部源进入 VBA 代码的数据 我希望能够分配该数据以用作此工作簿中一张工作表的单元格下拉框中的验证 但是 我不想将该数据复制到工作表中 然后使用命名范围 可能有相当多的数据 而且这感觉不是很有效 我确信一定有办法 但我还没有找到
  • Perl 中的“@_”有什么作用?

    我浏览了一些我在 Perl 类中编写的代码 我注意到了这一点 my string my stringarray split string 我想知道两件事 变量位于括号中的第一行 这是声明多个变量时所做的事情 如果我删除它们 它仍然可以正常工
  • 如何将文本小部件内容设置为 Python/Tkinter 中变量的值?

    我正在编写一个程序来协助完成我工作中可以自动化的一小部分 我来这里的目的是 将一段纯文本复制并粘贴到 Tkinter 文本小部件中 使用粘贴的文本块作为变量的值 以便该变量可以将某些字符拉出并返回到行中 我有一些功能正常的代码 例如 这是我
  • 为什么函数可以返回由 malloc 设置的数组,但不能返回由“int cat[3] = {0,0,0};”设置的数组

    为什么我可以从函数返回由 malloc 设置的数组 int dog int malloc n sizeof int 但不是数组设置 int cat 3 0 0 0 返回 cat 数组并带有警告 感谢你的帮助 这是一个范围问题 int cat
  • 哪个正则表达式能够在 C# 公式中选择 Excel 列名称?

    我需要在 C 中实现 Excel 公式自动填充 假设这个公式位于 B100 SUM B 99 B99 我想让这个公式在 C100 时有所不同 SUM B 99 C99 该公式仅是一个示例 一些真实的例子是 SUM B 0 B 0 SUM 1
  • 使用 VBA 将 Excel 中的范围粘贴到 Powerpoint 模板的特定幻灯片中

    我花了好几个小时查看针对我的问题的各种建议解决方案 但找不到任何似乎可以完成工作的东西 或者更可能的是 我对 VBA 的掌握正在了解我理解在线解决方案的能力 因此 我希望你们中的一位好心人能够帮助我解决问题 我打开了一个 Excel 工作表
  • 不使用 INDIRECT 的多张表中的 SUMIF

    这是我正在处理的简化 EXCEL 文件 数据表 1 称为first 数据表 2 称为second 数据结构和范围 C2 E8 是一样的 我需要根据 B 列 选项 中的标准对这些表进行求和 我期望的结果 选项1 和 sheet 选项2 和 s
  • 来自外部文件的 PHP 变量?

    编辑 完成的解决方案 工作代码 所以 这是我的一个朋友帮我想出来的 这是我在 K2 items php 文件中使用的部分 div class fb comments div

随机推荐