0

我在这里找到了一个非常适合我使用的宏,所以已经感谢 stackoverflow 社区!我只是在努力修改下面的最后一部分:

Sub Forename()

' Macro to delete rows if there are less than 4 in the NAME column

Dim LR As Long, i As Long
Application.ScreenUpdating = False
LR = Range("NAME" & Rows.Count).End(xlUp).Row
For i = LR To 1 Step -1
    If Len(Range("NAME" & i).Value) < 4 Then Rows(i).Delete
Next i
Application.ScreenUpdating = True

End Sub

这是完美的,但我不想删除包含 <1 值的行,而是想用一些文本替换它。例如客户。

提前致谢

4

2 回答 2

0
row containing the <1 value
Len(Range("NAME" & i).Value)

你的意思是用一些文本替换一个空白单元格?如果是,那么您不需要循环。下面是两种 VBA 方式和一种非 VBA 方式,无需循环即可实现您想要的。

方式 1(使用.SpecialCells

Option Explicit

Sub Sample()
    On Error GoTo Whoa

    ThisWorkbook.Sheets("Sheet1").Range("Name").SpecialCells(xlCellTypeBlanks).Value = "Customer"

    Exit Sub
Whoa:
    MsgBox "No blank cells found"
End Sub

方式 2(使用.Replace

Option Explicit

Sub Sample()

    ThisWorkbook.Sheets("Sheet1").Range("Name").Replace What:="", _
    Replacement:="Customer", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, _
    SearchFormat:=False, ReplaceFormat:=False

End Sub

方式 3(Non VBA)

CTRL+H

  1. 选择您的范围
  2. 留空Find What:_
  3. 放入Customer_Replace With:
  4. 点击Replace All
于 2013-11-05T11:45:29.310 回答
0

将删除行替换为以下内容:

If Len(Range("NAME" & i).Value) < 4 Then Range("NAME" & i).Value = "Text"

于 2013-11-05T11:41:21.760 回答