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)
归档时间: |
|
查看次数: |
29268 次 |
最近记录: |