1
我正在尋找爲我的序列中的每個錯過的數字插入一行。例如,我有「35C-1412-K01」和「35C-1421」,我們的想法是在1412到1421之間爲每個錯過的數字添加一行。然而,我之前完成了這個操作,但是我使用的代碼不起作用因爲代碼比較了單元格中最後5個字符,並且我正在更多地查看該單元格的中間數字。我的想法是可能使用「MID」屬性,而不是「RIGHT」屬性,但我在實施時遇到了問題。在第一個「 - 」,即「35TC-1411」之前,我還有一些單元格有三個以上的字符,所以如果只考慮只有三個字符,可能會拋出代碼。任何幫助,這是非常感謝。我上面提到爲序列中的每個錯過的數字插入行
代碼:
Option Explicit
Sub InsertNullTest()
Dim i As Long, gap As Long
Dim WorkRng As Range
On Error Resume Next
Set WorkRng = Application.InputBox(Prompt:="Range To Check", Title:="Select a Range", Default:=Selection.Address, Type:=8)
On Error GoTo 0
If WorkRng Is Nothing Then Exit Sub '<--| check user hasn't canceled the dialog box
With WorkRng
For i = .Rows.Count To 2 Step -1
gap = Right(.Cells(i), 5) - Right(.Cells(i - 1), 5)
If gap > 1 Then .Cells(i).Resize(gap - 1).Insert xlDown
Next
End With
End Sub
有沒有辦法讓它只看標籤號碼的數字值?我剛剛意識到一些單元包含標籤,如「35E-1401AK」,後跟「35E-1408」。當代碼針對這兩個標籤運行時,我應該得到一個插入的行,但是我得到一個錯誤。除此之外,它似乎在工作 –
如果你閱讀斯普利特,你會解決它。在35C-1412-K01的原始示例中,v1(0)= 35C,v1(1)= 1412,v(2)= K01。它返回你指定分隔符的數組。所以是的,如果只有一個連字符就會出錯。 – SJR
謝謝你的幫助! –