将数组作为parameter passing给列表框时出错
目标:创build一个用户窗体并获取用户input,然后从用户input中将其放入一个列表中,当您单击该列表时,将自动在整个工作簿中find它。
像这样的东西:
我看到这个post: 匹配整个工作簿
我创造了一些东西:
Public Sub CommandButton3_Click() Dim TempArray As Variant Dim RealArray() TempArray = Application.InputBox("Select a range", "Obtain Range Object", Type:=64) ArrayRows = UBound(TempArray) ReDim RealArray(1 To ArrayRows) For i = 1 To ArrayRows RealArray(i) = TempArray(i, 1) Next i MsgBox "The number if rows selected are " & ArrayRows ListBox1.List = RealArray ListBox1 Arraay:=RealArray End Sub Public Sub ListBox1_Click(ByRef Arraay() As Variant) Dim Sh As Worksheet Dim something As Range Dim ArrayRows As Long For Each Sh In ThisWorkbook.Worksheets With Sh.UsedRange For i = 1 To ArrayRows Set something = RealArray.Find(What:=RealArray(i)) If Not something Is Nothing Then Do Until something Is Nothing test = something.Value Set something = .FindNext(something) Loop End If Next i End With Set something = Nothing Next End Sub
创build这个之后,我得到关于第二个子的错误。
过程声明与具有相同名称的事件或过程的描述不匹配
列表框单击事件不采取任何参数。
Private Sub ListBox1_Click() End Sub
如果你想在sub之间传递一个数组,那么你可以这样做
Dim MyArray() As Variant Public Sub CommandButton3_Click() '~~> Initialize array End Sub Private Sub ListBox1_Click() '~~> Use array here '~~> Also put an error check if the array is initialized or not End Sub