Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 循环通过一列并拉出特定的单元格_Excel_Excel 2010_Vba - Fatal编程技术网

Excel 循环通过一列并拉出特定的单元格

Excel 循环通过一列并拉出特定的单元格,excel,excel-2010,vba,Excel,Excel 2010,Vba,我有一个电子表格,在一列中包含了大量的数据,我希望能够提取出具体的数据。我想看看“直到循环”是否有效 我试图让循环停止,当它看到“directory*”作为单元格的一部分时,例如G:\example目录。在此之前,循环应查看单元格,如果没有以数字开头,则将该单元格复制到另一个工作表/列 Sub Order() iRow = 1 Do Until Cells(iRow, 1) = "Directory*" If Cells(iRow, 1) <> NumberatBegi

我有一个电子表格,在一列中包含了大量的数据,我希望能够提取出具体的数据。我想看看“直到循环”是否有效

我试图让循环停止,当它看到“directory*”作为单元格的一部分时,例如G:\example目录。在此之前,循环应查看单元格,如果没有以数字开头,则将该单元格复制到另一个工作表/列

Sub Order()

iRow = 1

  Do Until Cells(iRow, 1) = "Directory*"
   If Cells(iRow, 1) <> NumberatBeginning Then
    Cells(iRow, 1).Copy _
    Destination:=Worksheets("Sheet2").Range("A1")
   End If


   iRow = iRow + 1
  Loop

End Sub
子订单()
iRow=1
直到单元格(iRow,1)=“目录*”
如果单元格(iRow,1)编号开始,则
单元格(iRow,1)。复制_
目的地:=工作表(“表2”)。范围(“A1”)
如果结束
iRow=iRow+1
环
端接头

如果有任何帮助,我们将不胜感激。

您就快到了。
IsNumeric
功能可以与
Mid
(或
Left
)功能结合使用,以检查单元格值中的第一个字符,如果字符是数字,则返回
True
False
。试试这个:

Sub Order()

Dim iRow as Long, x as Long

iRow = 1
x = 1

Do Until Cells(iRow, 1).Value Like "Directory*"
    If Not IsNumeric(Mid(Cells(iRow, 1).Value, 1, 1)) Then
        Worksheets("Sheet2").Cells(x, 1).Value = Cells(iRow, 1).Value
        x = x + 1
    End If
iRow = iRow + 1
Loop

End Sub
您应该避免使用复制和粘贴,因为它会减慢代码的速度,因此最好只设置单元格的值


此外,当您循环复制带有非数字首字符的单元格并将其粘贴到
Sheet2
时,您的代码总是粘贴到同一单元格中,
Range(“A1”)
,假设您想要一个值列表,您需要在每次将值复制到
Sheet2

时通过添加一行来增加该值,当然
如“Directory*”
如果在开始处有一个数字,那么肯定是错误的,因此无需对此进行测试。但是@OP希望循环在找到以
开头的值时停止“Directory*”
或者我从这个问题上理解的那样