我有一列有 7000 多个名字。我想让每个名字的长度不超过5. 这是我尝试过但不起作用的方法
Sub del()
Dim myCell
Set myCell = ActiveCell
Dim count As Integer
count = Len(ActiveCell)
While count > 5
myCell = Left(myCell, Len(myCell) - 1)
myCell.Offset(1, 0).Select
Set myCell = ActiveCell
Wend
End Sub
Run Code Online (Sandbox Code Playgroud)
不需要VBA。您可以使用公式 ,=Left(A1,5)来获取5单元格的第一个字符。只需自动填充公式。
如果您仍然需要 VBA,那么您也不需要循环。请参阅此示例。有关说明,请参阅将整个范围转换为大写而不遍历所有单元格
Option Explicit
Sub Sample()
Dim ws As Worksheet
Dim lRow As Long
Dim rng As Range
'~~> Change this to the relevant sheet
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set rng = .Range("A1:A" & lRow)
rng = Evaluate("index(left(" & rng.Address(External:=True) & ",5),)")
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,我假设数据A在Sheet1. 根据情况更改。
在行动
| 归档时间: |
|
| 查看次数: |
58 次 |
| 最近记录: |