返回列表 上一主題 發帖

[發問] 取代字串?

[發問] 取代字串?

欲將姓名
王某                  取代成     王O
陳某某              取代成      陳O某
趙某某某         取代成       趙OO某
孫某某某某    取代成        孫OOO某

如何
求解
謝謝

回復 1# thjh159
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR(), i As Integer, S As Integer
  4.     AR = Array("王大", "王大一", "王大大二", "王大AB三")
  5.     For i = 0 To UBound(AR)
  6.         S = IIf(Len(AR(i)) > 2, Len(AR(i)) - 2, 1)
  7.         AR(i) = Mid(AR(i), 1, 1) & String(S, "○") & IIf(Len(AR(i)) > 2, Right(AR(i), 1), "")
  8.     Next
  9.     MsgBox Join(AR, vbLf)
  10. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

分成兩類, 姓名為兩個字及大於兩字.
1. 若兩個字,則取代最後一個字為O.
2.若兩個字以上,則處理方式相同, 多種, 其一先將第一個以後的字變改為O...某

所以應使用IIF加上一條件即可達成需求.

TOP

欲將姓名
王某                  取代成     王O
陳某某              取代成      陳O某
趙某某某      ...
thjh159 發表於 2014-11-8 14:34

參考 GBKEE 大大的程式修改 :
  1. Sub nn()
  2.     Dim AR(), i%
  3.     AR = Array("王大", "王大一", "王大大二", "王大AB三")
  4.     For i = 0 To UBound(AR)
  5.       AR(i) = Left(AR(i), 1) & String(Len(AR(i)) - (Len(AR(i)) = 2) - 2, "○") & Right(AR(i), -(Len(AR(i)) > 2))
  6.     Next
  7.      MsgBox Join(AR, vbLf)
  8. End Sub
複製代碼

TOP

感謝提供解藥

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題