Excel 如何将特定列中的所有空格替换为指定字符串?

Excel 如何将特定列中的所有空格替换为指定字符串?,excel,vba,Excel,Vba,我正在使用以下VBA代码,并总结了一些调查结果: Sub Main() ReplaceBlanks Multi_FindReplace End Sub Sub ReplaceBlanks() Dim ws As Worksheet Dim lastrow As Long Dim rng As Range Set ws = Sheets("Refined") lastrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row For i

我正在使用以下VBA代码,并总结了一些调查结果:

Sub Main()


   ReplaceBlanks
   Multi_FindReplace

End Sub


Sub ReplaceBlanks()

Dim ws As Worksheet
Dim lastrow As Long
Dim rng As Range

Set ws = Sheets("Refined")
lastrow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

For i = 2 To lastrow
     If WorksheetFunction.CountA(ws.Range(ws.Cells(i, 17), ws.Cells(i, 21))) = 0 Then
        If Not rng Is Nothing Then
              Set rng = Union(ws.Cells(i, 1), rng)
        Else
              Set rng = ws.Cells(i, 1)
        End If
     End If
Next i

rng.EntireRow.Delete


End Sub


Sub Multi_FindReplace()
'PURPOSE: Find & Replace a list of text/values throughout entire workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim fndList As Variant
Dim rplcList As Variant
Dim x As Long

fndList = Array("Mostly satisfied", "Completely satisfied", "N/A", "Not at all satisfied")
rplcList = Array("Satisfied", "Satisfied", "Satisfied", "Not satisfied")



Set sht = ActiveWorkbook.Sheets("Refined")

'Loop through each item in Array lists
  For x = LBound(fndList) To UBound(fndList)
    'Loop through each worksheet in ActiveWorkbook

        sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _
          LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
          SearchFormat:=False, ReplaceFormat:=False


  Next x

End Sub
此代码生成的输出仅显示短语“满意”或“不满意”。下图显示了它的外观:

然而,当它完成时,它也会显示一些空白单元格,我想说“满意”(但我们只想在删除调查对象根本没有回答任何问题的空行后执行此操作(这已经由“替换空白”子功能完成)

我想重点关注的空白单元格只有列Q3到U3,然后是W3到Z3,最后是向下的AB3到AC3(即我不知道这些列中会有多少行,但至少有一行,从第3行开始)

我不确定如何只关注这3组列,但我在第一组列上尝试了以下代码:

Sub dural()
    Dim r As Range, LastRow As Long
    LastRow = Cells(Rows.Count, 2).End(xlUp).Row
    For Each r In Range("Q3:U19" & LastRow)
        If r.Text = "" Then r.Value = "Satisfied"
    Next r
End Sub
但是这一行在我需要的那一组下面多放了一千行“满意”

感谢您提供的任何提示,请尝试以下方法:

Sub dural()    
    With Sheets("Refined")
        Intersect(.UsedRange, .Range("Q:U, W:Z, AB:AC")).SpecialCells(xlCellTypeBlanks).Value = "Satisfied"
    End With
End Sub

顺便说一句:
“Q3:U19”&LastRow
一定会返回一些“Q3:Q19xxx”地址,其中xxx等于LastRow…

非常感谢-因此我认为在用“满足”替换空单元格时,没有办法停在最后一行数据,这是一个很好的方法,但是删除多余的数据很容易,现在一切都好了,谢谢