Board logo

標題: [發問] 取代字串? [打印本頁]

作者: thjh159    時間: 2014-11-8 14:34     標題: 取代字串?

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

應如何
求解
謝謝
作者: GBKEE    時間: 2014-11-8 15:36

回復 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
複製代碼

作者: mmxxxx    時間: 2014-11-8 16:45

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

所以應使用IIF加上一條件即可達成需求.
作者: luhpro    時間: 2014-11-9 08:32

欲將姓名
王某                  取代成     王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
複製代碼

作者: thjh159    時間: 2014-11-10 16:33

感謝提供解藥




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)