標題:
編列序號問題
[打印本頁]
作者:
sheau-lan
時間:
2015-6-11 08:44
標題:
編列序號問題
如何讓編號自動產生
詢求各位大大幫忙
作者:
luhpro
時間:
2015-6-13 08:29
如何讓編號自動產生
詢求各位大大幫忙
sheau-lan 發表於 2015-6-11 08:44
你的範例檔有些地方邏輯性不一致,
這裡只能先依我理解的規則來試做.
1.每個 Range 間固定只留 4 的倍數的空白列,
超過且未達 4 的倍數的空白列無條件刪除,
每多 4 個空白列 規格的序號加 1
2.只考慮變更 品號 所在列自動編號 規格-英文字,
對於其下資料並未做重新編號的處理.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo 99
Dim TG As Range
With Target
If .Row >= 3 And .Column = 1 Then
If .Value = "" Then
98: .Offset(0, 2) = ""
.Offset(0, 3) = ""
.Offset(0, 5) = ""
.Offset(0, 6) = ""
Else: Set TG = Sheet7.[H3:H9999].Find("*" & .Value & "*", , , xlWhole)
If TG Is Nothing Then GoTo 98
.Offset(0, 2) = TG.Offset(0, -6).Value
TG2 = .Offset(0, 2).Value
.Offset(0, 3) = TG.Offset(0, -3).Value
.Offset(0, 9) = TG.Offset(0, -2).Value
.Offset(0, 5) = Application.VLookup(TG2, Sheet15.[A4:H9999], 8, False)
If IsError(.Offset(0, 5).Value) Then .Offset(0, 5) = ""
.Offset(0, 6) = TG.Offset(0, 1).Value
Dim N%, N1%, S1$, C%, S2$
N = 0
Set TG = .Offset(-1, 7)
While TG = ""
Set TG = TG.Offset(-1)
N = N + 1
Wend
N1 = Mid(TG, 2, Len(TG) - 3)
S1 = Right(TG, 1)
C = 0
S2 = TG
While TG = S2
Set TG = TG.Offset(-1)
C = C + 1
Wend
If N > 3 Then
N1 = N1 + Int((N - 3) / 4) + 1
S1 = "A"
With Range(.Offset(0), .Offset(, 9)).Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 37
.Weight = xlHairline
End With
N = N - (Int(N / 4) * 4)
Else
If C > 3 Then S1 = Chr(Asc(S1) + 1)
End If
Application.EnableEvents = False
.Offset(, 7) = "M" & N1 & "-" & S1
If N > 0 And N < 4 Then
Range(Rows(.Row - 1), Rows(.Row - N)).Delete
.Offset(1).Select
End If
Application.EnableEvents = True
End If
End If
End With
99
End Sub
複製代碼
作者:
sheau-lan
時間:
2015-6-15 10:54
luhpro 大大..就是這樣....謝謝你歐..感激不盡...
作者:
sheau-lan
時間:
2015-7-1 07:45
luhpro大,上次是你幫我解的,這次編碼有一些不一樣,但大同小異
可否請再幫忙
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)