【发布时间】:2016-09-24 23:04:31
【问题描述】:
我正在开发一个 for 循环,该循环根据第 12 列中等于“Airfare”的字符串提取整行数据。
这个想法是复制第 12 列 (EXPENSE_TYPE) 为 Airfare 的数据行并将其粘贴到第二个工作簿中。
下面的我的代码没有正确循环遍历所有 120 行数据。当我运行我的宏时,它只提取满足我的条件的第一行数据。如果你能找到我的问题,请告诉我。谢谢!
Sub exportDataToOtherWorkbook()
Dim lastRow As Long
Dim i As Long
Dim p As Integer
Dim q As Integer
Dim erow As Long
lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To lastRow
If Cells(i, 12) = "Airfare" Then
Range(Cells(i, 1), Cells(i, 16)).Select
Selection.Copy
Workbooks.Open Filename:="C:\users\andrew.godish\Desktop\Practice Files\masterPracticeExtractDataWBtoWB.xlsx"
p = Worksheets.Count
For q = 1 To p
If ActiveWorkbook.Worksheets(q).Name = "Sheet2" Then
Worksheets("Sheet2").Select
End If
Next q
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(erow, 1).Select
ActiveSheet.Paste
ActiveWorkbook.Save
Application.CutCopyMode = False
End If
Next i
End Sub
【问题讨论】:
-
你从未初始化过
lastRow,所以它是0。 -
抱歉,我没有完整地复制我的代码。现在是正确的,lastRow 变量现在已初始化。谢谢。
-
啊,限定你的范围/单元格?编辑:当您在书籍/表格之间跳转时,计算机如何知道您的意思是哪个
cells?例如,If Cells(i, 12) = "Airfare" Then