我看了一下,发现了一两个相似的项目,但似乎都没有用(我得到一个我无法追踪的错误)。
基本上我希望从“数据”工作表中的特定列中获取数据,然后根据critera将其复制到多个其他工作表。
我想根据每行的“I”列进行搜索。然后我想只将A:H复制到另一张表。
我在下面使用的代码顺利运行,但没有任何内容被复制。当我尝试将搜索号从1更改为01时,它会给出一个未指定的错误。最终,我想让它拉出下面项目范围内的任何内容,并将A:H复制到现有的备用工作表。 (更多细节如下)
所以,在粘贴代码之前,这里是摘要:
搜索第I列的连续范围(我假设我将连续放置多个搜索/复制/粘贴项目)6-8进入早期,9-11早上,12-16,下午,17- 19驾驶时间和20-5夜(我尝试使用原始时间,但指定06:00:08:59的范围是不可能的AFAIK)
仅将该行中的特定列复制到新工作表(A:H)
然后是一个重置按钮,只清除那些数据列的所有表(我的代码在那些依赖于它们的列之外)
A B C D E F G H I J K L M N
x1 C 6/1/2014 6:40:27 PM OS 7 4 1 6 6/1/2014 18:40 6:00:00 PM 0.0% Sunday Week 1
x2 C 6/1/2014 7:45:28 PM JH 10 - 1 2 6/1/2014 19:45 7:00:00 PM 100.0% Sunday Week 1
Sub CopyData()
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
On Error GoTo Err_Execute
'Start search in row 2
LSearchRow = 2
'Start copying data to row 2 in 6-8 (row counter variable)
LCopyToRow = 2
While Len(Range("A" & CStr(LSearchRow)).Value) > 0
'If value in column I = "Between 6 - 8", copy entire row to Early
If Range("I" & CStr(LSearchRow)).Value = "6" Then
Sheets("Data").Range("A" & LSearchRow & ":H" & LSearchRow).Copy _
Sheets("Early").Range("A" & LCopyRow)
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Data Sheet to continue searching
Sheets("Data").Select
End If
LSearchRow = LSearchRow + 1
Wend
'Position on cell A3
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Exit Sub
Err_Execute:
MsgBox "An error occurred."
End Sub
事先感谢大家,感谢任何帮助!