2014-12-04 3 views
0

У меня проблема с переданными значениями. Сначала я попытался передать их между Userform и модулем. Я думал, что это была проблема, поэтому я поставил подпрограмму в той же пользовательской форме. Тем не менее мое значение передается, но оно не возвращается к первой подпрограмме. Я теряюсь, что происходит ...Передача значений в Userform

Private Sub rob_wnioski_but_Click() 

Dim wnioski_path As String 

wybor_pliku klient_path:="", opcja:=1 

MsgBox (klient_path) 

End Sub 


Private Sub wybor_pliku(ByRef klient_path As String, opcja As Integer) 

Start.Hide 

With Application.FileDialog(msoFileDialogFilePicker) 
    .AllowMultiSelect = False 'tylko jeden plik 

    If .Show = True Then: klient_path = .SelectedItems(1) 

End With 

Unload Start 

End Sub 
+1

Что вы сделали, чтобы отладить это? Вы поставили точку останова на строку 'If .Show = True', чтобы определить, что значение правильно назначено переменной' klient_path' в рамках 'wybor_pliku'? –

+0

'klient_path' назначается в рамках' wybor_pliku', но после его завершения он должен быть возвращен в 'rob_wnioski_but_Click', но это не так. Я видел что-то вроде этого здесь: http://www.cpearson.com/excel/byrefbyval.aspx, но я не могу воспроизвести его в моем примере. Это обычное время, конечно же, в Userform Forms. – lowak

+0

Я понимаю, где назначается 'klient_path'. Теперь, пожалуйста, ответьте на мой вопрос: что вы сделали, чтобы быть уверенным, что значение действительно присваивается * этой переменной? –

ответ

2

Вам необходимо передать переменную wybor_pliku. То, что вы делаете, это передать литерал (пустая строка). Вам нужно объявить klient_path как переменную в процедуре _Click, а затем вызвать wybor_pliku следующим образом:

wybor_pliku klient_path, opcja:=1 
+0

Он работает! Таким образом, другими словами, если я передаю какое-либо определенное значение, как я это сделал, оно не будет обновляться? Я прав? В вашем примере 'opcja' не изменится, даже если я задал ему другое значение в подпрограмме' wybor_pliku'? – lowak

+0

Да, это правильно. –

+0

Узнал что-то сегодня, спасибо! :) – lowak