標題:
請問版上大大這個要怎麼寫??
[打印本頁]
作者:
藍天麗池
時間:
2014-2-28 20:49
標題:
請問版上大大這個要怎麼寫??
A B C
100 100
99 99
98 98
97 97
98 96
96 95
95 94
94
94
95
96
如上所示:A欄會隨機出現數字,我想要讓A欄的值從大到小,且不重複,要如何用VBA寫,請版上大大伺教,感謝
作者:
藍天麗池
時間:
2014-2-28 20:54
A B C
100 100
99 ...
藍天麗池 發表於 2014-2-28 20:49
PS:A欄數字會增加,每天數量不一定
作者:
seer_et
時間:
2014-3-1 11:25
回復
2#
藍天麗池
不知行不行,你試一下 :
Private Sub Worksheet_Change(ByVal Target As Range)
rs = Range("A1").End(xlDown).Row
Set Rng = Range("A1:C" & rs)
Rng.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlYes, Orientation:=xlTopToBottom
End Sub
作者:
yen956
時間:
2014-3-1 12:41
回復
2#
藍天麗池
可用進階篩選, 勾選 不選重覆的記錄
如不想每次操作 進階篩選, 可錄下再修改,
VBA code 如下:
Option Explicit
Private Sub CommandButton1_Click()
Dim cnt As Integer, rng As Range
cnt = Range("A1").End(xlDown).Row
[C2].Resize(cnt, 1) = ""
Set rng = [A2].Resize(cnt, 1)
rng.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rng, _
CopyToRange:=Range("C2"), Unique:=True
End Sub
複製代碼
作者:
yen956
時間:
2014-3-1 13:20
回復
1#
藍天麗池
抱歉, 忘了 C欄有排序,
修正如下:
Option Explicit
Private Sub CommandButton1_Click()
Dim cnt As Integer, rng As Range
cnt = Range("A1").End(xlDown).Row
[C2].Resize(cnt, 1) = ""
Set rng = [A2].Resize(cnt, 1)
'先排序 (也可以先篩選, 再排序)
rng.Sort Key1:=Range("A2"), _
Order1:=xlDescending, _
Header:=xlYes
'再篩選, 勾選 [不重覆] 及 [篩將選結果複製到別的地方]
rng.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=rng, _
CopyToRange:=Range("C2"), Unique:=True
End Sub
複製代碼
作者:
藍天麗池
時間:
2014-3-1 15:20
回復
3#
seer_et
大大不行ㄟ,程式會跑,但會出現重複,且不是出現在C欄
作者:
yen956
時間:
2014-3-1 19:32
回復
6#
藍天麗池
大大你好, 沒有重覆啊!!
如下圖:
作者:
yen956
時間:
2014-3-2 09:02
但會出現重複,且不是出現在C欄
回復
6#
藍天麗池
想到了, 你是用手動 篩選 的吧,
記得用 進階篩選, 勾選 不選重覆的記錄,
及 勾選 複製到別處→ 複製到 C2
如下圖:
作者:
藍天麗池
時間:
2014-3-2 09:49
回復
8#
yen956
Y大感謝你的回答,但因為資料是動態接收的,所以用錄製巨集的方式可能不太行ㄟ
作者:
yen956
時間:
2014-3-2 11:28
回復
9#
藍天麗池
那就用5F的vba吧!!
作者:
sunnyso
時間:
2014-3-10 12:23
回復
1#
藍天麗池
提示 字典+排序
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)