Tag: 用户界面

如何修复无法将最后一个元素滚动到视图中的Excel列表框

自从我记得以来,我在excel UI中遇到的一个杀手级问题就是使用listbox滚动。 当您可以显示一个列表框中有更多的元素时,会出现一个scoll栏。 但是,在某些情况下,将条形一直滚动到列表的底部并将其释放,会使条形向上“跳跃”一个凹槽,并且无法看到列表中的最后一个项目。 这里说明: 有很多论坛post提出这个问题,解决scheme一直是“将整体高度属性设置为false,然后再次设置为true”。 这样做是稍微调整列表框的大小,使其高度四舍五入到单个行的高度,然后不隐藏任何项目。 With lstbox .IntegralHeight = False .Height = myHeight .IntegralHeight = True End With 但是,在某些情况下,这是行不通的。 如果你是: 以编程方式设置列表框的高度 不使用简单的列表框select(fmMultiSelectSingle) 然后简单地将整体高度设置为false,然后在更改高度之后更改true,将调整列表框的高度,但是当您向下滚动时,问题将保持不变 – 最后一个项目无法看到。 这个令人沮丧的问题的关键是,虽然互联网上的其他人都确认“整体高度”解决scheme适用于他们,但这些非常特殊的情况令人沮丧,想知道为什么它不适合他们。 那么他们如何得到解决?

在VBA的文本框中格式化MM / DD / YYYYdate

我正在寻找一种方法来自动将VBA文本框中的date格式化为MM / DD / YYYY格式,并且我希望格式化为用户input的格式。例如,一旦用户input第二个号码,程序会自动input“/”。 现在,我用下面的代码得到了这个工作(以及第二个短划线): Private Sub txtBoxBDayHim_Change() If txtBoxBDayHim.TextLength = 2 or txtBoxBDayHim.TextLength = 5 then txtBoxBDayHim.Text = txtBoxBDayHim.Text + "/" End Sub 现在,这在打字时效果很好。 然而,当试图删除时,它仍然input破折号,所以用户不可能删除过去的一个破折号(删除破折号导致长度为2或5,然后再次运行该子,join另一个破折号)。 任何build议更好的方式来做到这一点?