Criando e adicionando matrizes dinâmicas

1

Estou tentando criar um login no formulário para o clube esportivo que ajudo a executar, mas estou tendo problemas para adicionar a um Dynamic Array.

    Private Sub UserForm_Initialize()

Dim SignedInNames() As String
Dim NumberSignedIn As Integer
    NumberSignedIn = 1

ReDim SignedInNames(NumberSignedIn + 1)


Dim Names() As Variant
Names = Range("OFFSET('People Info'!$A$1,1,0,COUNTA('People Info'!$A:$A)-1,1)")

PersonNameComboBox.List = Names

SignedInListBox.List = SignedInNames
End Sub

Private Sub SignInCommandButton_Click()

SignedInNames = Add(PersonNameComboBox.Value) 'The code crashers here
NumberSignedIn = NumberSignedIn + 1

End Sub

Eu mudei agora, então é

Private Sub UserForm_Initialize()

Dim SignedInNames() As String
Dim NumberSignedIn As Integer
    NumberSignedIn = 1

ReDim SignedInNames(0 To NumberSignedIn)


Dim Names() As Variant
Names = Range("OFFSET('People Info'!$A$1,1,0,COUNTA('People Info'!$A:$A)-1,1)")

PersonNameComboBox.List = Names

SignedInListBox.List = SignedInNames
End Sub

Private Sub SignInCommandButton_Click()

ReDim Preserve SignedInNames(0 To NumberSignedIn)
SignedInNames(NumberSignedIn) = PersonNameComboBox.Value
NumberSignedIn = NumberSignedIn + 1
'ReDim SignedInNames(o To NumberSignedIn)
SignedInListBox.List = SignedInNames
'SignedInNames = Add(PersonNameComboBox.Value)
'SignedInNames(NumberSignedIn) = PersonNameComboBox.Value
'NumberSignedIn = NumberSignedIn + 1

End Sub

Agora estou recebendo um erro onde quando chegar à linha

ReDim Preserve SignedInNames(0 To NumberSignedIn)

está mostrando o erro "Variável não definida"

    
por Matthew Johnston 02.01.2016 / 17:13

1 resposta

0

Eu resolvi o problema original alterando a maneira como eu configuro o array. Então eu consertei o segundo problema fazendo as variáveis que eu estava usando globalmente.

Dim SignedInNames() As String
Dim NumberSignedIn As Integer
Dim Names() As Variant

Private Sub UserForm_Initialize()


NumberSignedIn = 1

ReDim SignedInNames(0 To NumberSignedIn)


Dim Names() As Variant
Names = Range("OFFSET('People Info'!$A$1,1,0,COUNTA('People Info'!$A:$A)-1,1)")

PersonNameComboBox.List = Names

SignedInListBox.List = SignedInNames
End Sub

Private Sub SignInCommandButton_Click()



ReDim Preserve SignedInNames(0 To NumberSignedIn)
SignedInNames(NumberSignedIn) = PersonNameComboBox.Value
NumberSignedIn = NumberSignedIn + 1
SignedInListBox.List = SignedInNames


End Sub
    
por 02.01.2016 / 18:55