返回列表 上一主題 發帖

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

回復 10# onegirl0204
自訂函數


複姓.rar (9.94 KB)

TOP

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

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

回復 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

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題