2016-03-05 71 views
1

我刚开始学习Excel/VBA,并得到一个简单的问题。我给出了一个从字母A到Z的列表,并且需要在VBA中编写一个可以找到人名的第一个字母的宏(例如我的L)。该字母需要在同一工作表中的特定单元格(即C4)中出现。这是我做的,但我得到了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

我能做些什么做这个工作?将不胜感激,如果一些指针给出。

+0

它在哪里寻找名字?那些字母用于什么? –

+0

从列表(列A到Z),我不知道图片链接是否工作。 – LouiD

+0

而这些信件基本上是我需要查找的清单。 – LouiD

回答

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 

为了发现和列副本名称的第一个字母C列,使用VBA函数:

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

希望这可能有所帮助。

+0

非常感谢,作品像一个魅力! – LouiD

相关问题