在VBA中,找到一个字符出现在一个单元格范围内单个单元格中的最大次数

MTM

在开始之前,我只想提前感谢每个贡献者。我之前只发布了一个问题,而我对得到答复的速度以及研究解决方案后学到的知识感到惊讶。我希望我很快就会有足够的信誉点,以开始支持在这里找到的好的解决方案。

无论如何,我想做的是返回一个数字,该数字是工作表列的单个单元格中出现的最大名称数。该列中的每个单元格可以具有任意数量的名称。每个名称都由竖线“ |”定界,因此我对管道进行计数,然后加一个以获取每个单元格中的名称数。例如:单元格值为“鲍勃|乔恩|拉里” = 2个管道+1 = 3个名称。

我下面的代码有效,但是我需要对成千上万的记录执行此操作。我认为我的解决方案不是实现此目标的好方法或有效方法(如果我做错了,请告诉我)。所以我的问题是:

  1. 有没有更好的方法可以做到这一点,例如不遍历范围内的每个单元格?

  2. 如果没有完全不同的方法,如何避免在新列的单元格中实际打印名称计数?我可以将这些值存储在数组中并计算数组的最大值吗?(也许您已经可以在这个话题上找到话题了吗?)

Sub charCnt()

Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual

Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = Worksheets("Leasing")
Dim vRange As Variant
Dim iCharCnt As Integer
Dim iRows As Integer
Dim i As Integer
Dim iMax As Integer

Const sFindChar As String = "|"

iRows = ws.Cells(Rows.Count, "A").End(xlUp).Row 'count number of rows

For i = 1 To iRows
     vRange = Cells(i, "O") 'column O has the names
    iCharCnt = Len(vRange) - Len(Replace(vRange, sFindChar, "")) 'find number of | in single cell.
    ws.Cells(i, "W") = iCharCnt 'column W is an empty column I use to store the name counts
Next i

iMax = Application.WorksheetFunction.Max(Range("W:W")) + 1 'return max from column W
    
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
MsgBox ("Max number of names in one cell is " & iMax) ' show result

End Sub
VBasic2008

最大子串数

Option Explicit

Sub charCount()

    Const cCol As String = "O"
    Const fRow As Long = 1
    Const Delimiter As String = "|"
    
    Dim wb As Workbook: Set wb = ThisWorkbook
    Dim ws As Worksheet: Set ws = wb.Worksheets("Leasing")
    Dim lRow As Long: lRow = ws.Cells(ws.Rows.Count, cCol).End(xlUp).Row
    Dim rg As Range: Set rg = ws.Cells(fRow, cCol).Resize(lRow - fRow + 1)
    Dim Data As Variant: Data = rg.Value
    
    Dim i As Long
    For i = 1 To UBound(Data, 1)
        Data(i, 1) = Len(Data(i, 1)) - Len(Replace(Data(i, 1), Delimiter, ""))
    Next i
    Dim iMax As Long: iMax = Application.Max(Data) + 1
    
    MsgBox ("Max number of names in one cell is " & iMax) ' show result

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将一个单元格中的最后一个字符移动到另一个单元格的开头

来自分类Dev

在单元格中包含一个字符串

来自分类Dev

Matlab:查找单元格中第一个字符出现的索引

来自分类Dev

更改单元格中第一个字符的字体-Excel,VBA

来自分类Dev

如何从上一个单元格更改excel中的一个字符

来自分类Dev

VBA在范围内找到第一个连续的空单元格

来自分类Dev

在列表中的一个单元格中按单元格中的每个字符进行排序

来自分类Dev

如何使UIButton只出现在最后一个单元格中?

来自分类Dev

为什么我的桌子出现在一个单元格中

来自分类Dev

如何使UIButton只出现在最后一个单元格中?

来自分类Dev

选择范围内的一个单元格

来自分类Dev

删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

来自分类Dev

在单列中填充范围内的单元格,但仅填充下一个空白单元格

来自分类Dev

在一个单元格范围内找到一个值作为子字符串

来自分类Dev

公式excel从单元格中的第一个字符中查找数据

来自分类Dev

查找范围内的空单元格,然后返回与空单元格在同一行中的另一个单元格的内容

来自分类Dev

如果单元格中的第一个字符为“-”,请更改整个行的颜色

来自分类Dev

MS Excel:删除第一个字符实例之前单元格中的数据

来自分类Dev

在动态范围内从单元格中删除最后一个逗号

来自分类Dev

在表格单元格的边框上放置一个字符

来自分类Dev

在单元格中找到一个字符串并编辑该vb.net

来自分类Dev

在范围内的特定单元格中输入的条件值,将解锁另一个范围内的另一个特定单元格(VBA,范围偏移)

来自分类Dev

如何找到一个范围内特定单元格的总和?

来自分类Dev

如何计算一个值小于excel中另一个单元格的范围内的单元格?

来自分类Dev

在Excel VBA中创建一个函数以测试单元格是否包含某个字符

来自分类Dev

修改范围内的一个单元格后自动对范围内的单元格进行排序?

来自分类Dev

VBA switch语句(或字典)基于第一个字符在相邻单元格中填充值

来自分类Dev

在MATLAB中,如何在单元格数组中每个字符串的开头插入一个字符串?

来自分类Dev

一个单元格数组中存在一个字符串多少次

Related 相关文章

  1. 1

    将一个单元格中的最后一个字符移动到另一个单元格的开头

  2. 2

    在单元格中包含一个字符串

  3. 3

    Matlab:查找单元格中第一个字符出现的索引

  4. 4

    更改单元格中第一个字符的字体-Excel,VBA

  5. 5

    如何从上一个单元格更改excel中的一个字符

  6. 6

    VBA在范围内找到第一个连续的空单元格

  7. 7

    在列表中的一个单元格中按单元格中的每个字符进行排序

  8. 8

    如何使UIButton只出现在最后一个单元格中?

  9. 9

    为什么我的桌子出现在一个单元格中

  10. 10

    如何使UIButton只出现在最后一个单元格中?

  11. 11

    选择范围内的一个单元格

  12. 12

    删除单元格中的第一个字符,并将其复制到Google表格中的相邻单元格中

  13. 13

    在单列中填充范围内的单元格,但仅填充下一个空白单元格

  14. 14

    在一个单元格范围内找到一个值作为子字符串

  15. 15

    公式excel从单元格中的第一个字符中查找数据

  16. 16

    查找范围内的空单元格,然后返回与空单元格在同一行中的另一个单元格的内容

  17. 17

    如果单元格中的第一个字符为“-”,请更改整个行的颜色

  18. 18

    MS Excel:删除第一个字符实例之前单元格中的数据

  19. 19

    在动态范围内从单元格中删除最后一个逗号

  20. 20

    在表格单元格的边框上放置一个字符

  21. 21

    在单元格中找到一个字符串并编辑该vb.net

  22. 22

    在范围内的特定单元格中输入的条件值,将解锁另一个范围内的另一个特定单元格(VBA,范围偏移)

  23. 23

    如何找到一个范围内特定单元格的总和?

  24. 24

    如何计算一个值小于excel中另一个单元格的范围内的单元格?

  25. 25

    在Excel VBA中创建一个函数以测试单元格是否包含某个字符

  26. 26

    修改范围内的一个单元格后自动对范围内的单元格进行排序?

  27. 27

    VBA switch语句(或字典)基于第一个字符在相邻单元格中填充值

  28. 28

    在MATLAB中,如何在单元格数组中每个字符串的开头插入一个字符串?

  29. 29

    一个单元格数组中存在一个字符串多少次

热门标签

归档