返回列表 上一主題 發帖

单元格内不重复字符

单元格内不重复字符

[版主管理留言]
  • Hsieh(2010-7-10 17:49): 請檢查代碼正確性

Sub 单元格内不重复字符()
Set d = CreateObject("scripting.dictionary")
Set e = CreateObject("scripting.dictionary")
For i = 1 To Len(ActiveCell.Value)
d(Mid(ActiveCell.Value, i, 1)) = ""
Next
On Error Resume Next
For i = 1 To Len(ActiveCell.Value)
e.Add Mid(ActiveCell.Value, i, 1), ""
If Err.Number = 457 Then d.Remove (Mid(ActiveCell, i, 1))
Err.Clear
Next
MsgBox Join(d.keys, "")
End Sub
Sub 单元格内不重复字符()
For i = 1 To Len(ActiveCell.Value)
For a = 1 To Len(ActiveCell.Value)
If Mid(ActiveCell.Value, i, 1) = Mid(ActiveCell.Value, a, 1) Then m = m + 1
Next
If m = 1 Then mm = mm & Mid(ActiveCell.Value, i, 1)
m = 0
Next
MsgBox mm
End Sub
可以改为自定义函数!
学习

回復 2# GBKEE
大大問你喔!!
為什麼找不到重複,用下面的方法加入字典裡,紅色地方看不懂,="" 不是代表沒有東西嗎? 為什麼變成加入字典?
d(Mid(ActiveCell.Value, i, 1)) = ""

TOP

这个方法不错
学习

TOP

  1. Sub OnlyChar()
  2. For i = 1 To Len(ActiveCell.Value)
  3.   If Len(ActiveCell) - Len(Replace(ActiveCell, Mid(ActiveCell, i, 1), "")) = 1 Then mystr = mystr & Mid(ActiveCell, i, 1)
  4. Next
  5. MsgBox mystr
  6. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 3# wqfzqgk

原來是 [去除重复的值] 後顯示出 沒有重複過的字元
是我第一眼的觀念是錯誤  去除重复的值後  顯示出全部的的字元

TOP

是去除重复的值,如11223455也只有34符合
是这么个意思
那个地方少了一个&
学习

TOP

本帖最後由 GBKEE 於 2010-7-10 17:51 編輯

回復 1# wqfzqgk
請問  你所分享的  单元格内不重复字符 程序中
為何要到二 個 scripting.dictionary 物件
Set d = CreateObject("scripting.dictionary")
Set e = CreateObject("scripting.dictionary")
使用一個就足夠 如下
  1. Set d = CreateObject("scripting.dictionary")
  2. For i = 1 To Len(ActiveCell.Value)
  3. d(Mid(ActiveCell.Value, i, 1)) = ""
  4. Next
  5. MsgBox Join(d.keys, "")
複製代碼
你使用 If Err.Number = 457 Then d.Remove (Mid(ActiveCell, i, 1))
會導致 MsgBox Join(d.keys, "") 的不正確

請問如下二個迴圈的用意 可以說明一下解惑嗎?
  1. For i = 1 To Len(ActiveCell.Value)
  2. For a = 1 To Len(ActiveCell.Value)
  3. If Mid(ActiveCell.Value, i, 1) = Mid(ActiveCell.Value, a, 1) Then m = m + 1
  4. Next
  5. If m = 1 Then mm = mm Mid(ActiveCell.Value, i, 1) 這裡有錯誤
  6. m = 0
  7. Next
複製代碼

TOP

        靜思自在 : 【時間如鑽石】時間對一個有智慧的人而言,就如鑽石般珍貴;但對愚人來說,卻像是一把泥土,一點價值也沒有。
返回列表 上一主題