0

我正在尝试从 excel 文档中加载、排序和显示名称。我不断收到预期的子、功能或属性错误?

Sub load()   'this program purpose is to load , sort and display names from an excel document'
    Dim names(1 To 5) As String
    Dim passNum As Integer, i As Integer, temp As String
    Dim num_names As Long, shift As String

num_names = 4  ' LOADS NAMES FROM EXCEL FILE'
For i = 1 To num_names
    names(i) = Cells(i, 1)
Next i
Call shift
Call display
End Sub

Sub sort_1(passNum As Integer, num_names As Long, i As Integer, temp As String)' SORTS NAMES'
   For passNum = 1 To (num_names - 1)
    For i = 1 To (num_names - passNum)
       If names(i) > names(i + 1) Then
            temp = names(i)
            names(i) = names(i + 1)
            names(i + 1) = temp
       End If
    Next i
Next passNum
End Sub

Sub display(i As Integer, num_names As Long)'DISPLAYS NAME BACK ON EXCEL FILE In COLUMN 2'
   For i = 1 To num_names
    Cells(i, 2) = names(i)
   Next i

End Sub
4

2 回答 2

2

您收到该错误是因为它找不到Shift程序

Call shift

您还需要为 Sub 传递参数,display否则您将收到“Argument Not Optional”错误。

例如

Call display(1, 1)
'OR Simply
display 1,1 
于 2013-04-25T20:57:07.727 回答
0

你需要列出所有的名字吗?

尝试这个...

Sub ListNames()
Dim N As Name

For Each N In ThisWorkbook.Names
    Debug.Print N.RefersTo
Next N

End Sub
于 2013-04-25T20:55:51.403 回答