![如何检测文本的实际长度/可见性/溢出?](https://linux22.com/image/1520717/%E5%A6%82%E4%BD%95%E6%A3%80%E6%B5%8B%E6%96%87%E6%9C%AC%E7%9A%84%E5%AE%9E%E9%99%85%E9%95%BF%E5%BA%A6%2F%E5%8F%AF%E8%A7%81%E6%80%A7%2F%E6%BA%A2%E5%87%BA%EF%BC%9F.png)
出于质量/数据完整性考虑,我必须确保所有注释在column C
打印时都可见:没有隐藏的溢出文本。宽度、高度和字体是固定的,并且已激活自动换行。
到目前为止,我设置了文本长度上限验证(我的情况是 100 个字符)。标准句子和 Lorem ipsum 内容可以很好地放入单元格中,但另一位用户发现他的 100 个字符部分被隐藏了。
确实,100 个“W”放不下——只有大约 30 个。但 30 个字符的最大文本长度太短了。
我如何检测文本的实际长度或其可见性或是否溢出?
还有其他想法吗?
编辑
- Monotype 字体效果很好。但由于评论占用的空间太大,我更喜欢第二种选择
我使用了 Jean-François Corbett 的技巧如何使用 VBA 检测 Excel 单元格中不适合的值?:检查是否
autofit
放大行或列,然后恢复初始大小。这样,最多可以接受 3 行注释。回车符Alt + Enter
也被考虑在内。'Check previous cells If Cell.Column = 10 Then 'check the comments column Hauteur_ligne = Cell.RowHeight Cell.EntireRow.AutoFit If Cell.RowHeight > Hauteur_ligne Then Cell.Interior.ThemeColor = xlThemeColorAccent2 'Red for rejected comment Saisie_Valide = False 'Validity flag Else Cell.Interior.ThemeColor = xlThemeColorAccent3 'Green for accepted comment End If Cell.RowHeight = Hauteur_ligne 'end of sub, alert message
太感谢了 !
答案1
我不认为有任何完美的答案,但解决办法可能是 -
- 将验证设置为 100 个字符
- 将注释列的宽度设置为适合所用字体中最宽的 100 个字符。也许是 W 字符……也许是其他字符 - 反复试验是您的好朋友
- 将最大打印页面宽度设置为最多 1 页。最大页面长度无关紧要... 可以将其留空或将其设置为较大值,例如 999,具体取决于您的 Excel 版本
这意味着您的电子表格可能无法在一个屏幕上显示完整...您的用户可能需要向右滚动一点...并且您的打印输出中可能会有比您想要的更多的空白,但如果打印是您的首要任务 - 看起来是这样 - 这应该每次都有效。