在 Excel 中查找和替换:可以限制为仅一列吗?

Geo*_*rge 1 microsoft-excel

11-7-19

这应该很简单,但即使如此我也遇到了麻烦:我想在一列中的每个出现处找到一小段文本,然后用空替换它,将文本留在每个已更改的单元格中在该列中,否则完好无损。

它完美地工作。问题是,如何将此操作限制为仅一列,而保留相邻列中包含文本片段的单元格不变?每次我尝试应用 FIND 和 REPLACE 时,它都会消除工作表中出现该片段的任何地方的文本片段。我曾尝试只选择一列中的单元格,但该操作似乎仍然贯穿整个电子表格。我试图删除我想限制操作的列,计划将其作为单个列粘贴到新工作表中,希望在那里使用 FIND 和 REPLACE,没有其他列可以打扰,并希望剪切删除更改后的列并将其粘贴回原始电子表格,不会干扰其他列。没有用 - 从来没有那么远 - 我无法将该列粘贴到新工作表中以在那里进行处理。

任何帮助将不胜感激。提前致谢。

小智 5

一个简单的尝试解决方案是将该列与所有其他列分开 - 突出显示您希望使用查找和替换功能的相关列,并格式化单元格以填充颜色。然后,转到使用查找和替换功能,单击“替换”,然后单击“选项”。输入您要搜索的文本,然后在其右侧,使用“格式”选项来选择您刚刚选择的色谱柱的颜色。然后,这将在整个工作表中搜索您要查找的文本,但只选择与您正在搜索的单元格格式(彩色单元格)相匹配的文本。输入您想要替换的内容,然后像往常一样使用查找和替换。完成后,只需将单元格格式化回无填充颜色。


小智 1

不幸的是,MS Office 中的查找/替换并不是那么智能。您有两个选择:

1)你可以按照你已经建议的去做。复制/粘贴到新工作簿并在其中执行操作。您报告说您无法粘贴,但这绝对应该是可能的,并且这是执行您所追求的操作的完全有效的方法。

2)您可以使用VBA以编程方式执行您想要的操作。这是实现该技巧的一段起始代码:

    Private Sub ReplaceRow()
        Dim Row As Integer, Col As Integer
        Row = 1: Col = 1 'Change "Col" to equal the column you wish to search.  Change "Row" to 2 to exclude header row.
        Dim LastRow As Integer
        LastRow = Cells(Rows.Count, 1).End(xlUp).Row
        Dim ws As Worksheet
        Set ws = Me

        Dim rng As Range, cell As Range
        Set rng = Range(ws.Cells(Row, Col), ws.Cells(LastRow, Col))

        Dim strFind As String, strReplace As String
        strFind = InputBox("Enter String to Find.")
        strReplace = InputBox("Enter replacement string.")

        For Each cell In rng.Cells
            If strFind = cell Then cell.Value = strReplace
        Next cell

    End Sub 'ReplaceRow
Run Code Online (Sandbox Code Playgroud)