我有一个电子表格,其中包含一大堆数据,我想要提取特定数据。我试图看看“直到循环”是否会进行循环播放。会工作的。
当我看到"目录*"时,我试图让循环停止。作为单元格的一部分,例如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
任何帮助将不胜感激
答案 0 :(得分:2)
您几乎就在那里,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
时,都需要通过添加一行来增加该值。