返回列表 上一主題 發帖

[發問] 名字字數不同之取代問題(已解決)

[發問] 名字字數不同之取代問題(已解決)

本帖最後由 onegirl0204 於 2010-10-10 11:16 編輯

請教各位前輩∼

當excel資料欄裡有人名要受保護時,如何針對名字字數不同而寫出正確的公式?
例如:由A2以下均為人名,當然有些人名是2個字或4個字的,如何寫出正確的公式使最後呈現的人名是王x(單名),林x雄,以及歐陽x(複姓)之類的型態

感謝賜教!

回復 23# GBKEE


非常感謝您的指導!我竟沒想到去巨集那裡找尋,雖然我不會寫指令,但是依您的指示去編輯修改倒是沒問題,下回測試您的方法可以應用在什麼方面?

TOP

回復 20# onegirl0204
Function Name_Defend(Word As String) As String
      程式嗎中
If GetEeWord.Exists(Mid(Word, 1, 2)) And Len(Word) >= 3 Then
      Name_Defend = Mid(Word, 1, 2) & "O" & Mid(Word, 4, Len(Word) - 3)
Else
       Name_Defend = Mid(Word, 1, 1) & "O" & Mid(Word, 3, Len(Word) - 2)
End If

TOP

本帖最後由 GBKEE 於 2010-10-17 19:24 編輯

回復 21# mycmyc
將程式碼複製到 一般模組 (Module) 物件中
工作表指令 [插入]->函數-> 使用者定義 ->  Name_Defend 函數
Sub ReWord() 是在sheet1的A欄中尋找複姓
  1. Dim GetEeWord As Object
  2. Function Name_Defend(Word As String) As String
  3.     Dim N As String
  4.     If Len(Word) < 2 Then Name_Defend = Word: Exit Function
  5.     If GetEeWord Is Nothing Then ReWord
  6.     If GetEeWord.Exists(Mid(Word, 1, 2)) And Len(Word) >= 3 Then
  7.         Name_Defend = Mid(Word, 1, 2) & "x" & Mid(Word, 4, Len(Word) - 3)
  8.     Else
  9.         Name_Defend = Mid(Word, 1, 1) & "x" & Mid(Word, 3, Len(Word) - 2)
  10.     End If
  11. End Function
  12. Sub ReWord()
  13.     Dim E As Range
  14.     Application.MacroOptions "Name_Defend", "隱藏姓名第二個字   林x正"
  15.     Set GetEeWord = CreateObject("Scripting.Dictionary")
  16.     For Each E In Sheet1.Range("A:A").SpecialCells(xlCellTypeConstants)
  17.         GetEeWord(E.Value) = ""
  18.     Next
  19. End Sub
複製代碼

TOP

回復 13# GBKEE
  能麻煩你 把公式即使用方法 貼出來嗎
HI

TOP

回復 13# GBKEE


請教前輩∼您在自訂涵數裡輸入的公式為何?因為我想自己練習將王X明改成王O明,可惜就是找不到公式,煩請賜教,謝謝!

TOP

回復 16# GBKEE


真是怪了?週五在學校測試就是有問題,怎麼剛剛在家測試又正常呢?難不成有鬼嗎?
不好意思∼給您添麻煩了,在此向您致歉,更感恩您的協助!

TOP

回復 17# toomellowhaw


高手果然與眾不同∼非常感謝您不厭其煩一再賜教,問題已經完成解決了!再次感恩您!

TOP

本帖最後由 toomellowhaw 於 2010-10-8 20:25 編輯

回復 14# onegirl0204


我測試是正常的..
錯誤原因猜測..可能是你的複姓資料庫缺乏該複姓,或是資料庫中複姓有誤..
如圖..[西門吹雪]呈現為[西X吹]..是因為複姓資料庫中無該資料
    ..[獨孤求敗]呈現為[獨X求]..是因為資料庫中的獨孤後面接了一個空白字元


TOP

回復 15# onegirl0204
請再確定 公式 =Name_Defend(A1)

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題