Excel 如何将特定列中的所有空格替换为指定字符串?
我正在使用以下VBA代码,并总结了一些调查结果: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
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…非常感谢-因此我认为在用“满足”替换空单元格时,没有办法停在最后一行数据,这是一个很好的方法,但是删除多余的数据很容易,现在一切都好了,谢谢