【发布时间】:2018-02-26 23:51:15
【问题描述】:
我有一本工作簿。如果满足某些条件,我需要从一个工作簿中提取一些行并保存到另一个工作簿中。我在 workbook1 的 sheet2 中有一个列,它要么是“真”,要么是“假”。如果在 sheet2 中获得“true”并且需要将其复制到另一个工作簿(workbook2),我需要从 sheet1 复制所有行。对 sheet1 中的列执行 EXACT 函数后获得 True 或 False。
请注意,我的 sheet1 不会有固定的列长。
我的代码:
Sub mySales()
Dim LastRow As Integer, i As Integer, erow As Integer
LastRow = ActiveSheet.Range(“A” & Rows.Count).End(xlUp).Row
For i = 2 To LastRow
If Cells(i, 1) = Date And Cells(i, 2) = “Sales” Then
Range(Cells(i, 1), Cells(i, 7)).Select
Selection.Copy
Workbooks.Open Filename:=”C:\Users\takyar\Documents\salesmaster-new.xlsx”
Worksheets(“Sheet1”).Select
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erow, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.CutCopyMode = False
End If
Next i
End Sub
【问题讨论】:
-
您的代码有什么问题?顺便说一句,您的报价是“智能报价”而不是常规报价:不知道在您的实际 VBA 项目中是否相同。
-
注意:始终使用
Long而不是Integer,尤其是在处理行数时。 Excel 的行数超过了Integercan 处理的数量。使用Integer也没有任何好处。