我正在尝试使用Excel中的VBA编写宏来将基于列A的行复制到新的工作表中。例如,在下表中,仅将列为A的3,4,5和6行复制到新工作表中。任何帮助是极大的赞赏。
下表如下所示。
Column A ColumnB 1 1 1 2 1 7 2 - 2 - 3 - 3 - 4 - 5 - 5 - 6 - 7 -
答案 0 :(得分:0)
Sub sorter()
Dim find1 As Object, find2 As Object
Dim row1 As Integer, row2 As Integer
Dim myWB As Workbook
Set myWB = ThisWorkbook
row1 = 1
row2 = 1
Do
Set find1 = myWB.Sheets(1).Range("B:B").Find(What:=myWB.Sheets(1).Cells(row1, 1).Value, LookIn:=xlValues)
If find1 Is Nothing Then
Set find2 = myWB.Sheets(2).Range("A:A").Find(What:=myWB.Sheets(1).Cells(row1, 1).Value, LookIn:=xlValues)
If find2 Is Nothing Then
myWB.Sheets(2).Cells(row2, 1).Value = myWB.Sheets(1).Cells(row1, 1).Value
row2 = row2 + 1
End If
End If
row1 = row1 + 1
Loop Until myWB.Sheets(1).Cells(row1, 1).Value = ""
End Sub
请确保您不要在第一栏中填空:)
答案 1 :(得分:0)
此外,我在这里遇到电脑电源问题。我的列A有62,346行,我的列B有7,167行,总共有30列。我尝试了我的代码,它从未成功运行:( 我使用的是惠普ProBook 440G2笔记本电脑英特尔酷睿i5-5200U CPU @ 2.2GHz,8 GB RAM,64位操作系统。我被要求更新我的笔记本电脑,但我不知道应该要求多少(就CPU和RAM而言)。在某些预算下,我是否要求更多CPU?内存? ??或者我不应该使用excel做这项工作?有什么建议?非常感谢。
Sub sorter()
Dim find1 As Object
', find2 As Object
Dim row1 As Long, row2 As Long
'Dim myWB As Workbook
'Set myWB = ThisWorkbook
row1 = 2
row2 = 2
Set t = Sheets("Sheet1")
Set r = Sheets("Sheet2")
Do
Set find1 = t.Range("B:B").Find(What:=t.Cells(row1, 1).Value, LookIn:=xlValues)
If find1 Is Nothing Then
'Set find2 = myWB.Sheets(2).Range("A:A").Find(What:=myWB.Sheets(1).Cells(row1, 1).Value, LookIn:=xlValues)
'If find2 Is Nothing Then
r.Rows(row2).Value = t.Rows(row1).Value
row2 = row2 + 1
'End If
End If
row1 = row1 + 1
Loop Until t.Cells(row1, 1).Value = ""
End Sub