如果值小于1个字符,则替换文本的宏 - Excel宏

时间:2013-11-05 10:57:46

标签: excel vba excel-vba

我找到了一个非常适合我在这里使用的宏,所以非常感谢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

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

提前致谢

2 个答案:

答案 0 :(得分:0)

用以下内容替换删除行:

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

答案 1 :(得分: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

WAY 3 (Non VBA)

CTRL + H

  1. 选择范围
  2. 保持Find What:空白
  3. Customer放入Replace With:
  4. 点击Replace All