2014-12-10 38 views
0

我有一個電子表格,其中每行都是空白的,列A以P開頭,或者列A以星號(舊文本文件)開頭。 P的值在整個文件中必須是唯一的 - 可以是字母或數字,但帶有P前綴。我不想更改空白或星號單元格。Find'n'Replace具有唯一值的非空單元格

因此,例如:

*** 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細胞,我不知道是否有一種使「替換」插入一些獨特文本(或不斷遞增的數字)的方法。我懷疑我需要一些代碼/宏。謝謝。

回答

1

由於不使用VBA一個替代的解決方案,你可以做到以下幾點:

  • 按Ctrl + ^h調出查找和替換
  • 點擊選項展開並查看所有選項
  • 查找什麼= p*
  • 假設<some data>列爲列B,設定替換= ="P"&TEXT(COUNTA(INDIRECT("B1:B"&ROW())),"0000")
  • 在= Sheet
  • 搜索= By Rows
  • 查找範圍= Formulas
  • 匹配情況應該是選中
  • 匹配全部單元格內容應該是檢查
  • 點擊全部替換
  • 假設您更換A列中的數據, 選擇列A,然後複製 - >右鍵 - >粘貼特殊 - > 值

截圖什麼查找/替換對話框應該像這樣:

enter image description here

記住,最後一步把A列到的值。

+0

優秀的步驟 - 謝謝! – GeoffM 2014-12-11 16:28:51

1

試試這個:

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 
相關問題