如何编写一个循环给定列表的宏?

时间:2016-03-05 14:52:45

标签: excel vba excel-vba

我刚开始学习Excel / VBA并得到了一个简单的问题。我给出了一个从字母A到Z的列表,需要在VBA中写一个宏,它可以找到一个人的名字的第一个字母(例如我的是L)。该字母需要在同一工作表中的特定单元格(即C4)中出现。这就是我所做的,但我得到了#34;应用程序定义或对象定义"

的1004运行时错误
Sub move()

    Dim a As Integer
    Dim x As Integer

    For x = 3 To 28
        If InStr(Cells(x, 1), "D") > 0 Then
            Cells(a, 3) = Cells(x, 1)
            a = a + 1
        End If
    Next x

End Sub

这是清单:

the list

我可以做些什么来完成这项工作?如果给出一些指示,将不胜感激。

1 个答案:

答案 0 :(得分:2)

您应该更正您的代码,如下所示:

Sub CopyName()
Dim a As Integer

a = 1
For x = 3 To 28
    'this will find the names with letter "D"
    If InStr(Cells(x, 1), "D") > 0 Then
        Cells(a, 3) = Cells(x, 1)
    a = a + 1
    End If
Next x

End Sub

要查找并将A列中名称的第一个字母复制到C列,请使用VBA功能:

Sub CopyFirstLetter()
For x = 3 To 28
    Cells(x, 3) = Left(Cells(x, 1), 1)
Next x
End Sub

希望这可能会有所帮助。