Find'n'replace具有唯一值的非空单元格
我有一个电子表格,其中每一行都是空白的,列A以P开头,或者列A以星号(旧文本文件)开头。 P的值在整个文件中必须是唯一的 – 可以是字母或数字,但带有P前缀。 我不想更改空格或星号单元格。
举个例子:
*** Block 1 *** P1 <some data> P1 <some data> P1A <some data> *** Block 2 *** P2 <some more data> P2 <some more data>
需要成为像这样的东西:
*** Block 1 *** P0001 <some data> P0002 <some data> P0003 <some data> *** Block 2 *** P0004 <some more data> P0005 <some more data>
虽然我可以使用“查找”来匹配所有的P单元格,但我不知道是否有一种方法让“replace”插入一些独特的文本(或不断递增的数字)。 我怀疑我需要一些代码/macros。 谢谢。
作为不使用VBA的备用解决scheme,您可以执行以下操作:
- 按Ctrl + H调出查找和replace
- 点击选项展开并查看所有选项
- find什么=
p*
- 假设
<some data>
列为B列,请设置Replace =="P"&TEXT(COUNTA(INDIRECT("B1:B"&ROW())),"0000")
- 在=
Sheet
- search=
By Rows
- 看在=
Formulas
- 火柴案应该是没有选中的
- 匹配整个单元格的内容应该被检查
- 点击全部replace
- 假设您replace的数据在列A中,请select列A,然后复制 – >右键单击 – >粘贴特殊值 – >值
查找/replace对话应该是什么样子的屏幕截图:
请记住最后一步将列A转换为值。
尝试这个:
Sub FixTheP() Dim r As Range Dim N As Long, i As Long i = 1 N = Cells(Rows.Count, "A").End(xlUp).Row For Each r In Range("A1:A" & N) If Left(r.Text, 1) = "P" Then r.Value = "P" & Format(i, "0000") i = i + 1 End If Next r End Sub