2015-06-24 2 views
0

Итак, я моделирую свой вопрос с помощью простых приложений для списка продуктов.VBA Excel динамически отображает добавленные результаты

Программа GUI:

AddMore

Теперь я хочу, чтобы клиент для входа: яйца, молоко, и хлеб, и для этого, чтобы войти и вывод в текстовый файл.

Текущий код:

Private Sub CreateList_Click() 

Dim myFile As String, myString As String 
myFile = "C:\Reformatted.txt" 
Open myFile For Output As #1 

myString = First.Value + Second.Value + Third.Value + Fourth.Value + Fifth.Value 

Print #1, myString 

Close #1 
Shell "C:\Windows\Notepad.exe C:\Reformatted.txt", 1 

End Sub 

Желаемая Операция:

То, что я хочу, чтобы это произошло, что Ther ввести там первые 5 пунктов. Затем он подсказывает им, хотят ли они другого 5. Если они это сделают, они могут добавить еще одну строку.

Так что я понимаю, что я могу добавить MsgBox в VB и просто создать цикл while для этого. Мой вопрос заключается в том, как отображать результаты своих первых/предыдущих представлений?

Желаемый результат:

DynamicDisplay

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

---------------------------- После ответа мисс Палмер -------------- ------------

Private Sub AddEntry_Click() 

Dim UserEntry As String 

UserEntry = First.Value + DDPP.Value + Filer.Value + EntryNumber.Value 

myString = myString & Chr(13) & UserEntry 

GroceryList.UserDisplay.Caption = "You have entered:" & myString 

End Sub 

Сценарий 1 - Первое дополнение

Scenario1

Сценарий 2 - Второй Добавление

Scenario2

Два дополнения должны быть размещены один за другим. Но в настоящее время он просто заменяет его.

ответ

2

Вы можете обновить метку на форме на каждую итерацию цикла при использовании что-то вида:

FormName.LabelName.Caption = "you have entered:" & myString 

, а затем добавить к строке каждый цикл с

myString = myString & First.Value + Second.Value + Third.Value + Fourth.Value + Fifth.Value 

EDIT

myString = myString & chr(13) & First.Value + Second.Value + Third.Value + Fourth.Value + Fifth.Value 
+0

Это выглядит хорошо! Быстрый вопрос, как я могу вставить строку после каждой записи или поместить каждую запись на отдельной строке? – Dasman

+0

см. Редактирование. или можете использовать vbcrlf –

+0

Perfect. Последнее. Я добавил кнопку «Добавить другую линию». Кажется, он работает, когда я снова отправляю тот же элемент.Если я изменю код, он изменит добавленную строку, но не добавит к ней. (Я отредактировал мой вопрос) – Dasman

Смежные вопросы