循环通过一列并拉出特定的细胞

时间:2017-02-16 10:31:43

标签: excel excel-vba excel-2010 vba

我有一个电子表格,其中包含一大堆数据,我想要提取特定数据。我试图看看“直到循环”是否会进行循环播放。会工作的。

当我看到"目录*"时,我试图让循环停止。作为单元格的一部分,例如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

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

您几乎就在那里,IsNumeric函数可以与Mid(或Left)函数一起使用来检查单元格值中的第一个字符并返回如果字符是数字,则TrueFalse。试试这个:

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时,都需要通过添加一行来增加该值。