標題:
自動編號問題
[打印本頁]
作者:
hcy_tp
時間:
2010-11-3 09:14
標題:
自動編號問題
[attach]3466[/attach]各位先進們好!
雖然可以使用函數完成B欄位的自動編碼,
但請先進們可否用VBA程式來執行。
案號 案次
RM960101 RM960101-1
RM960101 RM960101-2
RM960102 RM960102-1
RM960103 RM960103-1
RM960103 RM960103-2
RM960104 RM960104-1
RM960105 RM960105-1
RM960105 RM960105-2
作者:
oobird
時間:
2010-11-3 10:02
Sub yy()
Dim d As Object, rng, i%
Set d = CreateObject("Scripting.Dictionary")
rng = Range([a2], "b" & [a65536].End(3).Row)
For i = 1 To UBound(rng)
d(rng(i, 1)) = d(rng(i, 1)) + 1
rng(i, 2) = rng(i, 1) & "-" & d(rng(i, 1))
Next
[b2].Resize(i - 1, 1) = Application.Index(rng, , 2)
End Sub
複製代碼
作者:
hcy_tp
時間:
2010-11-3 13:47
感謝您的協助,
不過有幾個問題想詢問一下
1.可以只設定工作表Sheet1自己自動執行嗎?
2.有可能讓a欄位有變動時再調整嗎?例如a4有資料輸入b4才會執行,不用讓全部的欄位都重新跑過。
作者:
oobird
時間:
2010-11-3 22:44
做成Worksheet_Change事件即可。
作者:
hcy_tp
時間:
2010-11-4 07:21
謝謝您的建議
已經程式略調整成
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim d As Object, rng, i%
Set d = CreateObject("Scripting.Dictionary")
rng = Range([a2], "b" & [a65536].End(3).Row)
For i = 1 To UBound(rng)
d(rng(i, 1)) = d(rng(i, 1)) + 1
rng(i, 2) = rng(i, 1) & "-" & d(rng(i, 1))
Next
[b2].Resize(i - 1, 1) = Application.Index(rng, , 2)
End Sub
目前測試ok
謝謝您的幫忙
作者:
oobird
時間:
2010-11-4 08:41
目前測試ok?
這樣還不是全部欄位重跑一遍?
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)