VBA创建Userform单个单元格对象

时间:2015-01-07 04:03:07

标签: excel vba userform

我开发了一个使用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的人为id = 1的项目输入的文本' 2015-01-07'。细胞价值是“天气疯狂”。字体颜色以逗号分隔的字符串列出,该字符串的每个元素都以冒号分隔。

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

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

这种方法虽然容易出错,但是大量的细胞和复杂的细胞字体/颜色配置都很慢。

我正在考虑使用嵌入到用户表单中的电子表格作为执行类似过程的更好方法,但我发现它非常错误且容易崩溃。有没有一个工具可以让你嵌入一个excel' cell'进入用户窗体而不是整个工作簿?

如果没有,是否有其他可以修改以满足我的需求?或者您对如何改进我当前存储/渲染数据的方法有任何建议

亲切的问候 约旦

1 个答案:

答案 0 :(得分:0)

你不能。无法将Worksheet嵌入到用户窗体中。但...

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

干杯
马切伊