我一直在浏览网站,但还没有找到类似的情况。具体来说,我要做的是以下内容。
使用包含三列的表
Number Priority Age
1234567890 Low 1
1234567890 Low 2
1234567890 High 3
1234567890 High 4
我想要一个VBA宏,它将首先复制最旧的记录(由年龄列确定),将其发送到当前工作表,然后从主工作表中删除该记录,然后保存Excel文件。
同样,我还没有找到任何附近的东西,因为我见过的所有内容都会复制所有行而不是细节。
任何帮助都会很棒!
编辑:这是我尝试使用的VBA代码,但我一直得到相同的结果(所有行都被复制)。
code
Sub MyMacro()
Dim i As Long, iMatches As Long
Dim aTokens() As String: aTokens = Split("10", ",")
For Each cell In Sheets("master").Range("A:A")
If (Len(cell.Value) = 0) Then Exit For
For i = 0 To UBound(aTokens)
If InStr(1, cell.Value, aTokens(i), vbTextCompare) Then
iMatches = (iMatches + 1)
Sheets("master").Rows(cell.Row).Copy Sheets("top10").Rows(iMatches)
End If
Next
Next
End Sub
code
答案 0 :(得分:0)
假设这只是想运行一次,这将有效。不确定为什么要使用数组。你的桌子有3列,但你说的是两个!无论如何,这是在你的桌子上工作。
Sub Move_Oldest()
Dim Rng As Range
Dim Lrow As Long
Dim Trow as long
Lrow = Sheets("top10").Range("a1000000").End(xlUp).Row
With Sheets("master")
Set Rng = Intersect(.UsedRange, .Columns(3))
If Not Rng Is Nothing Then
trow = Application.Match(Application.Max(Rng), Rng, 0)
.Cells(trow, 1).Resize(, 3).Copy Sheets("top10").Cells(Lrow + 1, 1)
.rows(trow).delete
End If
End With
End Sub