小编Kim*_*son的帖子

Excel 的 ActiveX 组合框中的错误?

我注意到在以下情况下我会遇到各种烦人的错误:

  • 我在工作表上有 ActiveX 组合框(不是 Excel 表单)
  • 组合框具有链接到它们的事件代码(例如,onchange 事件)
  • 我使用它们的 listfillrange 或 linkscell 属性(清除这些属性似乎可以缓解很多问题)
  • (不确定这是否已连接)但目标链接单元上有数据验证。

我编写了一个相当复杂的 excel 应用程序,它执行大量事件处理并使用大量控件。几个月来,我一直在努力处理与这些组合框有关的各种错误。我现在不记得每个实例的所有细节,但这些错误往往涉及将 listfillrange 和 linkscell 属性指向命名范围,并且通常与在不适当的时间触发的组合框事件有关(例如当 application.enableevents = 假)。这些问题在 Excel 2007 中似乎越来越大,因此我不得不完全放弃这些组合框(我现在使用包含在用户表单中的组合框,而不是直接在工作表上)。

有没有其他人看到过类似的问题?如果是这样,是否有优雅的解决方案?我环顾了谷歌,到目前为止还没有发现任何有类似问题的人。

我最终看到的一些症状是:

  • 启动时 Excel 崩溃(涉及组合框_onchange、listfillrange->另一个不同工作表上的命名范围以及 workbook_open 交互)。(注意,我还对链接的单元格进行了一些数据验证,以防用户直接编辑它们。)
  • Excel 呈现错误(通常当组合框更改时,另一个工作表中的某些单元格会随机绘制在当前工作表的顶部)有时它涉及屏幕完全闪烁到另一个工作表片刻。
  • Excel 失去理智(或者更确切地说,调用堆栈)(与第一个要点相关)。有时,当函数修改组合框的属性时,组合框 onchange 事件会触发,但它永远不会将控制权返回给首先导致更改的函数。即使在 application.enableevents = false 时,combobox_onchange 事件也会被触发。
  • 不应该触发的事件(我在与此相关的堆栈溢出上发布了另一个问题)。

在这一点上,我相当确信 ActiveX 组合框是邪恶的化身,不值得麻烦。我已经转而将这些组合框包含在用户表单模块中。我宁愿用弹出式表单给用户带来不便,也不愿出现随机的视觉伪影和崩溃(数据丢失)。

excel vba excel-2007 excel-2003

5
推荐指数
1
解决办法
2万
查看次数

VBA隐藏的陷阱

此问题旨在增加VBA的隐藏功能中的隐藏功能问题

VBA最大,最常见或最烦人的陷阱是什么?

请列出可能被描述为的任何内容

  • 程序员要小心
  • VBA行为需要痛苦和持续的解决方法.
  • 一直使错误容易产生的事情.
  • 令程序员困惑的事情
  • 与其他语言等相比,非常规语法或行为

vba

5
推荐指数
1
解决办法
846
查看次数

数字输入的测试用例

关于数字输入的一些常见(或值得)测试,测试问题,弱点或误解是什么?

这是社区维基。请添加到它。

例如,以下是一些示例提示:

  • 我通常会看到用户在数字字段中输入文本(例如,> 4”或“ 4天”等)。
  • 字段留空(空)
  • 很长的数字字符串
  • 多个小数点和逗号(例如“ 4..4”和“ 4,434.4.4”)
  • 边值分析:
    • 下界
    • 下边界-1(对于十进制/浮点数,使用较小的数量)
    • 上边界
    • 上限+ 1
    • 远低于下边界(例如,超出硬件边界值)
    • 远远高于上限
    • 范围的中间
  • 0
  • 0.0
  • 空白,仅此而已“”
  • 字符串输入和其他不正确的数据类型。
  • 前面或后面带有文字的数字,例如“ $ 5.00”,“ 4磅”,“约60”,“ 50+”
  • 负数
  • 带正数的+号,“ + 4”
  • 加号和减号,例如“ + -4”和“ -4e + 30”
  • 指数为10(大写和小写),正和负,例如“ 4e10”,“-5E-10”,“ + 6e + 60”等
  • “ e”字符过多,例如“ 4e4e4”,“ 4EE4”
  • 不可能的大/小指数或不合适的指数
  • 无法在计算机中表示的十进制值
    • 例如.3 + .6 == 1.0?此错误影响大多数硬件,因此比较十进制值的输出应允许一定程度的错误。
  • 整数/硬件溢出。例如,对于32位整数,将40亿加到40亿会发生什么?
  • 错误使用了小数点和千位分隔符(“,” vs.“。”)(MikeD)
  • 国际化问题i18n:在英语应用中,您输入“ 12,345.67”,在德语中表示“ 12345.67”,而您则输入“ 12345,67” –(k3b)
  • 前导0不会使数字为八进制(常见的JavaScript错误)

testing numbers catalog

5
推荐指数
0
解决办法
4859
查看次数

Autohotkey-捕获额外的鼠标按钮

自动热键可以捕获非标准鼠标按钮吗?我使用五键鼠标(Microsoft Wireless Laser Mouse 6000)。

autohotkey

5
推荐指数
2
解决办法
2万
查看次数

设置vaadin表高度以适合内容

我在项目中使用CustomLayout来分隔UI对象和它们的样式.

我有桌子的问题.

我定义了一个div,我希望将表的高度设置为div的高度.

哪种方式最好?

我想:

table.setsizeFull() ;
table.setPageLength(0);
Run Code Online (Sandbox Code Playgroud)

在代码中,但结果不是我想要的.我希望桌子在div的尺寸中全尺寸,内部有或没有元素.

有什么建议?

css vaadin

5
推荐指数
1
解决办法
1万
查看次数

在查询结果中包含空行

有没有办法在sql查询的顶部包含一个空行,例如,如果它是用于下拉列表?(MS Sql Server 2005或2008)

Select * 
  FROM datStatus 
ORDER BY statusName
Run Code Online (Sandbox Code Playgroud)

我想要的地方

  -1  (please choose one)
  1   Beginning
  2   Middle
  3   Ending
  4   Canceled
Run Code Online (Sandbox Code Playgroud)

从通常只是上面的表,但没有顶行?

sql sql-server

1
推荐指数
1
解决办法
1万
查看次数

Excel/VBA:我可以设置一个形状属性来防止打印形状吗?

我写了一些VBA代码来创建一些用于GUI的形状,但我试图确保形状不会打印.由于我是动态创建这些形状,因此无法手动将每个形状设置为不打印.有没有办法以编程方式进行?

  Set roundedRec = ws.Shapes.AddShape(msoShapeRectangle, 10, 10, 10, 10)

  roundedRec.Name = shapeName

  With roundedRec
    .Fill.Visible = msoFalse
    .Line.ForeColor.RGB = RGB(0, 204, 0)
    .Line.Style = msoLineThinThin
    .Width = target.Width + 4
    .Left = target.Left - 2
    .Height = target.Height + 4
    .Top = target.Top - 2
    .ZOrder (msoSendToBack)
    ' need a way to set the shape to NOT print...?
  end with
Run Code Online (Sandbox Code Playgroud)

excel vba excel-2007 excel-vba

1
推荐指数
1
解决办法
3068
查看次数

Vaadin - 适合组件的布局大小

我有以下情况:VerticalLayout里面有标签.(此布局是弹出窗口的内部)
当我构建应用程序时,我不知道标签的长度 - 从数据库中查询标签内容.

有没有办法告诉这个VerticalLayout的宽度足以适应所有标签而不会破坏它们,但不是更大?我不希望标签坏掉,但我也不希望弹出窗口中有空格.

java vaadin

0
推荐指数
1
解决办法
8197
查看次数