【问题标题】:Userform and multiple images用户表单和多个图像
【发布时间】:2021-09-17 14:13:08
【问题描述】:

我有一张表格,用于查找数据库,该数据库包含特定代码的所有可用图像的路径。我想要做的是,当用户在 Excel 电子表格中输入代码时,它会在同一行的表格右侧创建一个按钮(很简单),然后单击该按钮会弹出用户表单。在这个用户表单上,我想列出数据库中与该代码匹配的所有图像。有些代码可能有 1 张图像,有些则多达 5 张。我还希望这些代码中的每一个都标记为 1 到 x(x 是最终图像)。

一旦我有了它,我希望能够让用户单击一个或多个图像以将它们添加到 Excel 工作表中(通过数字参考,所以如果用户单击 1、3 和 4,我希望它放置代码旁边的单元格中的“1、3、4”)。或者我可以让他们点击取消并手动输入数字。

我想要的可能吗?我该怎么办?我对 VBA 中的用户表单的经验绝对为零,但我真的很想看看他们能做什么。

【问题讨论】:

  • 没有编程知识的我建议雇用某人
  • 我不是这么说的。我有大量的 VBA 知识,只是没有关于用户表单的知识,因为我从未见过需要使用它们。我可以很容易地在 excel 表中做到这一点(它是如何在这个文件的旧版本中完成的),但这次想让它更整洁更好
  • 不要太刻薄,但这是一个需要很多时间才能解决的问题。我建议雇用某人来完成这项工作,但如果您不想这样做,我建议您查看 OCR 以“读取”图像。您会意识到要达到 100% 甚至接近 90% 的准确率根本不容易。
  • @bmgh1985 “它是如何在这个文件的旧版本中完成的” excel 实际读取图像并将您的代码与图像匹配?也许有一个我不知道的内置函数! D:
  • 您为什么不先尝试一下,然后再提出一个具体问题呢?回答代码/特定问题要容易得多。

标签: excel userform vba


【解决方案1】:

回答你的问题:

是的,这是可能的。即使从 VBA 和 UserForms 的角度来看也非常简单。

我会通过创建一个用户窗体并向其添加控件来实现它,特别是ImageCheckBoxCommandButton 控件。一旦您对手动添加它们有了感觉,您就可以编写一些相当基本的代码来动态地将它们添加到 UserForm 并为它们分配事件处理程序以处理您想要的用户交互。 提示:双击用户窗体上的控件将为该控件的默认事件生成一个处理程序,并将您带到该用户窗体的代码隐藏页面。

This question 对以编程方式向用户窗体添加控件提供了一些帮助。

【讨论】:

  • 我什至没有想到要使用复选框。我认为图像本身就是可操作的对象。让事情变得简单多了!只需要弄清楚图像数量的变化,我就准备好了,谢谢:)
  • @bmgh1985 我相信图像对象中有一个功能,您可以为其赋值。它要求对于每个图像,必须编写一个click() 事件。但话又说回来,我认为使用复选框是正确的选择,尽管您需要创建更多数量的对象,因为您不需要在创建图像时编写事件。
【解决方案2】:

Ben,如果你有时间玩一下,我认为这是值得追求的。您必须设置用户表单。这并不难,但如果你对它没有多少经验,你就会熟悉一点。

我建议从您的电子表格副本开始,然后在其上使用用户表单。在 VBA 编辑器中,转到插入、用户窗体。可用的控件将在工具箱窗口中弹出,如果您按 F4,您将看到您单击的内容的属性。要查看这些属性的描述,您可以从 VBA 编辑器中获取帮助并打开目录。通过“Visual Basic for Applications Language Reference”、“Microsoft Forms Visual Basic Reference”、“Reference”、“Properties”向下钻取左侧的 TOC。这将为表单的每个部分提供可用属性的描述(即您要放置在行尾的按钮的“隐藏”)。

对于单击图像,建议将每个图像的描述(或只是图像名称)放在列表​​框中,以便用户选择。

excel-spreadsheet.com 上可以找到一个很好的入门参考。当然还有其他多个免费网站和帮助。

猜你喜欢
  • 2021-08-14
  • 2023-03-04
  • 2018-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2022-01-26
  • 2016-05-04
相关资源
最近更新 更多