我有一个Excel电子表格,我正在写一个文件。我目前正在使用以下方法重现每个单元格的内容:
cell_contents = Right(Space(10) & Trim(Cells(iRow, iColumn)), 10)
但是,如果单元格的内容长度超过10个字符(或者我选择指定多长时间),那么我会丢失部分数据。有没有办法快速轻松地获得一系列单元格中最长字符串的长度?
我见过人们建议使用以下循环,但我希望我能够在不必遍历所有单元格的情况下完成它:
For Each c In SourceRange.Cells
if len(c) > b then b = len(c)
Next c
答案 0 :(得分:7)
将这些步骤记录为要计算最大长度的单元格中的宏。
1)输入此公式
=MAX(LEN(A1:A4), 1) -- Edit for your range.
2)press control-shift enter
(FormulaArray)
3)现在停止录制宏
4)查看VBA。将你需要的东西复制到你的VBA。
应该给你这样的东西:
Selection.FormulaArray = "=MAX(LEN(R[-10]C[1]:R[-1]C[1]))"
答案 1 :(得分:4)
按Alt-F11
,插入新模块,粘贴以下代码。
Public Function maxRangeLength(data As Range) As Integer
Dim ret As Integer
ret = 0
For Each cell In data
ret = Application.Max(ret, Len(cell))
Next cell
maxRangeLength = ret
End Function
用法:
=maxRangeLength(A8:D11)
答案 2 :(得分:0)
可以只使用... {= MAX(LEN(A2:A200))}
在顶部单元格中输入= MAX(LEN(A2:A200))..然后按CTRL-SHIFT-ENTER以获取花括号。
答案 3 :(得分:-1)
假设数据位于A列,并且电子表格中有标题行。