【问题标题】:VBA creating a Userform single cell objectVBA 创建用户窗体单单元格对象
【发布时间】:2015-01-08 14:44:45
【问题描述】:

我开发了一个应用程序,它使用 excel/VBA 在 WAMP 配置中连接 MySQL 数据库。此应用程序的功能之一是自动保存单元格值,包括单词颜色、字体样式、字体大小等。该应用程序加载日历并在工作簿打开时呈现输入的单元格文本。

这是通过将单元格值分解为字符并将它们存储到 cell_value 表中来实现的,该表在以下庄园中引用了我的数据库中的其他对象

+----+-------------+------------+------------+----------------------+--------------------+
| id | employee_id | project_id |    date    |      cell_value      |     font_color     |
+----+-------------+------------+------------+----------------------+--------------------+
|  1 |           1 |          1 | 2015-01-07 | the weather is crazy | 1:14:70,15:20:2000 |
+----+-------------+------------+------------+----------------------+--------------------+

此表存储 id=1 的人员在 '2015-01-07' 上为 id=1 的项目输入的文本。单元格值是“天气很疯狂”。字体颜色以逗号分隔的字符串列出,该字符串的每个元素都由冒号分隔。

+--------------------------+------------------------+------------+
| starting_character_index | ending_character_index | font_color |
+--------------------------+------------------------+------------+
|                        1 |                     14 |         70 |
|                       15 |                     20 |       2000 |
+--------------------------+------------------------+------------+

我一直在使用 cell_selection_change 事件来触发对数据库的自动写入,以存储名为 LAST_SELECTED_CELL 的全局内容(因为活动单元格是在用户对其进行更改之前设置的,因此不适合写入用户更改单元格内容后的数据库)。

此方法有效,但容易出现错误,并且对于大量单元格和复杂的单元格字体/颜色配置很慢。

我正在考虑使用嵌入到用户表单中的电子表格作为执行类似过程的更好方法,但是我发现它有很多错误并且容易崩溃。是否有一种工具可以让您将单个 excel“单元格”嵌入到用户表单中而不是整个工作簿中?

如果没有,还有什么可以修改以满足我的需要吗?或者您对如何改进我当前存储/呈现数据的方法有任何建议

亲切的问候 约旦

【问题讨论】:

  • 不确定您要达到什么目的...“将单个 excel '单元格'嵌入用户表单而不是整个工作簿”是什么意思?我听不懂...你想创建一个用户表单来编辑单个记录吗?
  • 我想嵌入一个与 excel 'cell' 具有相似功能的对象。因此,我可以更好地控制用户可以编辑记录的环境。
  • 还是找不到你 ;( 你想创建这样的表单吗:losmac.republika.pl/download/so_singlecellobject.jpg
  • 我想要一种将电子表格对象嵌入到用户表单中的方法(隐藏除第 1 列之外的所有列、行、第 1 行,即单个可见单元格)。我已经尝试过上面描述的这种方法,但是电子表格对象一旦嵌入到用户表单中会导致应用程序在对属性进行基本操作时崩溃,例如: UserForm1.Spreadsheet1.activewindow.DisplayHeadings = false 我如何在用户表单中嵌入电子表格?
  • 感谢您的澄清。请看我的回答。

标签: excel vba userform


【解决方案1】:

你不能。无法将 Worksheet 嵌入到用户表单中。但是……

你可以通过ListBox来模仿它。它提供了一种将数据显示为 Excel 工作表显示行和列的方法。它使您可以一次选择单行或多行。您可以只显示一列,其余列可以隐藏(使用 ColumnWidth 属性)。

干杯
马切耶

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    相关资源
    最近更新 更多