我有部分代碼供VBA運行,並在我的數據中發現非連續數字後添加空白行。但是,我的數據包含字母和代碼編寫方式,它只比較整數序列。有沒有辦法操縱代碼來只選擇部分單元格並比較該部分?選擇Excel單元格(未完成單元格)的一部分並將其與其他單元格進行比較
例如我有以下順序:
100-CG-000-10008
100-CG-000-10009
100-CG-000-10011
100-CG-000-10012
和想法是讓VBA後100-CG-000-10009插入空行由於它不再在那之後按順序。我正在使用的代碼是:
Sub InsertNullBetween()
'Update 20130829
Dim WorkRng As Range
Dim Rng As Range
Dim outArr As Variant
Dim dic As Variant
Set dic = CreateObject("Scripting.Dictionary")
'On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A1").Value
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
interval = num2 - num1
ReDim outArr(1 To interval + 1, 1 To 2)
For Each Rng In WorkRng
dic(Rng.Value) = Rng.Offset(0, 1).Value
Next
For i = 0 To interval
If dic.Exists(i + num1) Then
outArr(i + 1, 1) = i + num1
outArr(i + 1, 2) = dic(i + num1)
Else
outArr(i + 1, 1) = ""
outArr(i + 1, 2) = ""
End If
Next
With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
.Value = outArr
.Select
End With
End Sub
有沒有什麼辦法可以修改代碼只查找包含第3次之後,整數單元的最後部分「 - 」?
@ Pvelez_3,你有沒有通過它? – user3598756
hi @ user3598756,你給我的代碼的第一部分工作,但如果我有一個跳過了多個數字的數字序列,它不會爲每個跳過的數字添加一個空行。我怎樣才能做到這一點?例如,如果序列是1,2,3,4,7,則需要添加空白行5和行6的代碼。 –
代碼不會被分成兩部分,而有兩個代碼:1st只有1個數字的間隔,第二個差距大於1.所以,如果你的情況是有大於1的間隙,你必須使用第二個代碼。試着讓我知道 – user3598756