我遇到了解决我的Excel数据库排序问题的问题。我是一个相当高级的excel用户,但有了这个问题我猜我别无选择,只能挖掘VBA,从我的VBAnewbie的角度来看,这看起来绝对是无穷无尽的。这就是为什么我决定寻找有经验的爱好者来帮助我的原因。
我搜索了多个论坛并回答了这类问题,但这些都没有帮助我让我的排序程序工作(好吧,这也是我根本不了解VBA的问题,也不是有足够的时间来试验和错误)。
所以这里是:
我有一张名为: BASE 的Excel工作表,包含大量数据(数据填充范围为A2:J60000):
https://www.dropbox.com/s/d2zwdb98idda379/BASE.JPG?dl=0
然后我有一个名为 Class1 的目标表:
https://www.dropbox.com/s/kwa0mbyiksytnyo/Class1.JPG?dl=0
如果匹配某个值,我需要对数据进行排序。不只是搜索或复制行,而是移动(或复制/粘贴然后删除而不留空行)。因此,基本的Excel索引/匹配或V / H查找对我来说没有任何好处。
我的程序步骤是:
3.1。要“浏览”工作表 BASE
中的整个列A3.2。寻找与目标表中的单元格A1值匹配的值。
3.3。查找移动到此匹配数据行的空行(不覆盖目标表中的现有数据)
3.4。最后将这些“值匹配”行(或范围A2:J2(A3:J3等))移动到目标工作表相应列。 (例如:将A2:J2移动到目标工作表A6:J6,因为ists为空)。
非常感谢有关此问题的任何帮助!因为它会让我摆脱困境:)
谢谢!
答案 0 :(得分:0)
也许这样的事情?
Sub SO
Application.ScreenUpdating = False
Set shTarget = Sheets("Target Sheet") 'Change as required
Set shBase = Sheets("BASE") 'Change as required
For i = shBase.Range("A" & shBase.Rows.Count).End(xlUp).Row To 1 Step -1
If shBase.Cells(i, 1).Value = shTarget.Cells(1, 1).Value Then
shBase.Rows(i).EntireRow.Copy _
Destination:= shTarget.Rows(shTarget.Cells(shTarget.Rows.Count, 1).End(xlUp).Row + 1).EntireRow
shBase.Rows(i).EntireRow.Delete Shift:=xlUp
End If
Next i
Application.CutCopyMode = False
Set shTarget = Nothing
Set shBase = Nothing
Application.ScreenUpdating = True
End Sub