如何将数据从一张纸移动到另一张纸

时间:2014-02-11 19:14:44

标签: excel vba excel-vba

我有一个Excel电子表格,需要一个宏。在sheet1中,我在单元格中有多个7个数字的值,例如,1 | 2 | 3 | 4 | 5 | 6 | 7 |高达93 | 94 | 95 | 96 | 97 | 98 | 99 |,可以在A,B,C,D,E,F,G,H,I列上找到,我想要提取示例所有以数字1开头的值,并将所有值放在工作表2列A,B,C,D,E,F,G,H,I,。 我试图从数据选项卡中提取过滤器:sort and filter ,,, filter ,,,,按数字过滤,,,,并以,,,,开头。这样做,我应用过滤器,但是当我选择数据值并选择时,这不起作用。

感谢。

你理解我错了,不是这样,会更充分地解释,我喜欢这个 A 1 | 2 | 3 | 4 | 5 | 6 | 7 | ,21 | 25 | 32 | 43 | 51 | 60 | 73 |,1 | 2 | 3 | 4 | 52 | 69 | 78 | ,11 | 12 | 30 | 45 | 50 | 61 | 79 | ,3 | 5 | 70 | 74 | 75 | 77 | 79 | ,1 | 22 | 33 | 44 | 50 | 63 | 75 |,1 | 22 | 33 | 44 | 50 | 63 | 75 | ................ 栏B 1 | 2 | 3 | 4 | 5 | 6 | 23 | ,1 | 2 | 3 | 4 | 5 | 6 | 8 | ,1 | 2 | 3 | 4 | 5 | 6 | 9 | ,1 | 2 | 3 | 4 | 5 | 6 | 10 | , 11 | 21 | 31 | 40 | 52 | 61 | 70 | ,9 | 2 | 3 | 4 | 50 | 68 | 70 | ,1 | 12 | 13 | 24 | 51 | 60 | 77 | ,......... C 1 | 2 | 3 | 4 | 50 | 65 | 70 | ,2 | 5 | 7 | 9 | 10 | 16 | 37 | ,5 | 8 | 9 | 14 | 15 | 26 | 67 | ,,,,,,,,,,, 1 | 94 | 95 | 96 | 97 | 98 | 99 |。         在这些列中,我想提取以nr1开头的所有值..... 1 | 2 | 3 | 4 | 5 | 6 | 7 | ,,, 1 | 90 | 91 | 92 | 93 | 94 | 95 |来自sheet2中的sheet1,
我的意思是...... A 1 | 2 | 3 | 4 | 5 | 6 | 7 | ,1 | 2 | 3 | 4 | 52 | 69 | 78 | ,1 | 22 | 33 | 44 | 50 | 63 | 75 | ,1 | 20 | 31 | 43 | 55 | 60 | 71 |
栏B 1 | 2 | 3 | 4 | 5 | 6 | 23 | ,1 | 2 | 3 | 4 | 5 | 6 | 8 | ,1 | 2 | 3 | 4 | 5 | 6 | 9 | ,1 | 2 | 3 | 4 | 5 | 6 | 10 | ,1 | 12 | 13 | 24 | 51 | 60 | 77 | C 1 | 2 | 3 | 4 | 50 | 65 | 70 | ,1 | 94 | 95 | 96 | 97 | 98 | 99 |

1 个答案:

答案 0 :(得分:0)

如果列A中的第一个数字需要为1,那么您希望将列A到I复制到表2,然后使用:

Sub NumberOne()

Dim myvaraible As Integer
Dim CopyRow As Long, PasteRow As Long, LastRow As Long
CopyRow = 1
PasteRow = 1
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Do Until CopyRow > LastRow
myVariable = Left(Range("A" & CopyRow).Value, 2)
If myVariable = "1" Then
Range("A" & CopyRow & ":I" & CopyRow).Copy Destination:=Sheets("Sheet2").Range("A" & PasteRow & ":I" & PasteRow)
PasteRow = PasteRow + 1
End If
CopyRow = CopyRow + 1
Loop
'
End Sub

它会将它们放在彼此之下的新行中。任何疑问让我知道