2016-03-05 54 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

相關問題