我目前正试图在这个Excel电子表格中整理出一堆页码。
在行中,页码上有大约4000多行,所有行都遵循一种模式,每行[随机数]行增加一个(例如可以是10或50),除了奇怪的不匹配之外模式,其中值2小于它上面的值。
屏幕截图:
我想创建一个宏,可能使用VBA脚本中的RegEx搜索每个值并检查它当前所在的值与下面的值之间的差异。如果差异为1,那么它很好,但如果差异为2,则应删除整行,差异为2的数字为。
基本上,脚本应删除上图中包含2的行。
我对VBA编码不太方便,所以一些帮助将不胜感激!
谢谢,
Aydan。
答案 0 :(得分:0)
按照屏幕截图显示,此代码假设带有页码的列将为C。
Sub compareLines()
Application.ScreenUpdating = False
ActiveSheet.Cells(3, 3).Activate
While ActiveCell.Value <> ""
If ActiveCell.Value - ActiveCell.Offset(-1, 0).Value < 0 Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Wend
Application.ScreenUpdating = True
End Sub
答案 1 :(得分:0)
选择列中的第一个数值并运行此子:
Public Sub removeValuesFromCurrentColumn()
'select first number value and run script
Dim rCurrentRange As Range, rNextRange As Range
Dim ws As Worksheet
Set ws = ActiveSheet
Set rCurrentRange = Selection
Do
Set rNextRange = rCurrentRange.Offset(1, 0)
'remove values which have relative difference less than -1
If (rNextRange.Value - rCurrentRange.Value < -1) Then
ws.Rows(rNextRange.Row).Delete
Set rNextRange = rCurrentRange.Offset(1, 0)
Else
Set rCurrentRange = rNextRange
End If
Loop While (rNextRange.Value <> "")
End Sub