【问题标题】:Counting leading spaces in Excel cell计算 Excel 单元格中的前导空格
【发布时间】:2018-01-04 16:38:14
【问题描述】:

我想标题很清楚。我尝试了以下解决方案,但没有成功。
我的函数适用于 Strings,但不适用于 cells
任何线索都非常受欢迎。

Function nbLeadingSpaces(str As Variant) As Integer
    Dim trimmed As String
    trimmed = LTrim(str)
    'works with strings, not with cells
    nbLeadingSpaces = InStr(1, str, Left(trimmed, 1), vbTextCompare) - 1
    'same issue
    'nbLeadingSpaces = Len(str) - Len(LTrim(str))
End Function

我需要这个来根据一种 文本大纲 做一些事情,如果一行是 主行,前导空格的数量将显示>子行(几个级别)。 VBA 似乎会自动修剪单元格内容 8-/


编辑

对不起,我很愚蠢(至少有时是这样)。这些单元格前面没有空格,而是缩进 :-)
问题解决了,我可以得到rng.IndentLevel,就是这样。
无论如何,您的所有评论都帮助我重新分析了这个问题,我会留下这个问题,这可能会帮助另一天失去理智:-)

【问题讨论】:

  • 试试trimmed = Application.WorksheetFunction.Trim(str)
  • @ScottCraner 当 VBA 忽略前导空格(当它们来自单元格时)时,这有什么帮助?您尝试过这个建议吗?
  • nbLeadingSpaces = Len(str) - Len(LTrim(str)) 在我将其用作 UDF 时按预期为我工作。你是如何尝试使用你的函数的?
  • @JohnColeman 处理字符串或单元?这就是问题
  • 当您说“文本大纲”时,您的意思是每个条件格式都会将空格添加到单元格的值中吗?

标签: excel vba spaces


【解决方案1】:

对不起,我很愚蠢(至少有时是这样)。这些单元格前面没有空格,而是缩进 :-)
问题解决了,我可以得到rng.IndentLevel,就是这样。

【讨论】:

  • 有趣。我不知道那个属性,所以我可能会犯同样的错误。
猜你喜欢
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
相关资源
最近更新 更多