2016-07-11 1 views
1

У меня есть UserForm, который выглядит как этотКак сохранить значения в пользовательской форме в vba?

enter image description here

Все текстовые поля заполняются значениями по умолчанию, когда пользователь открывает эту форму.

Пользователь затем меняет значения вручную и нажимает OK, который закроет форму и повлияет на диаграммы, связанные с формой.

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

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

Спасибо!

+0

Ответ: Да, вы можете создать рабочий лист с именем «Admin», например, и рабочий лист. Клетки получат значения из текстовых полей. После сохранения файла, и в следующий раз, когда вы его откроете, вы можете иметь все текстовые поля для чтения значений из ячеек таблицы «Admin» в Form_Init или Form_acitvate. –

+0

Класс «Настройки» .. My.Settings Я думаю. Сначала вы должны создать переменную для каждой информации ... но есть GUI для нее :) найдите учебник по классу настроек. Или сохранить в файл/базу данных ... но «Настройки» должны работать нормально: данные сохраняются в .exe-файле, я полагаю; поэтому нет дополнительного файла для отслеживания. – ABuckau

+0

@ABuckau Это можно сделать в VBA или это только для VB.NET? – Carrosive

ответ

1

Вы пытались использовать Лист в качестве места для сохранения данных?

Dim i As Integer 
Private Sub UserForm_Initialize() 
    For i = 1 To 49     'Number of TextBoxes (I counted 49) 
     Controls("TextBox" & i).Text = Cells(i, 1) 
    Next i 
End Sub 

Private Sub CommandButton1_Click() 'Save button 
    For i = 1 To 49 
     Cells(i, 1) = Controls("TextBox" & i).Text 
    Next i 
End Sub 

Это сохранит значения в первых 49 строках первого coloumn. Если вы хотите сохранить его на другом листе, создайте новый и добавьте Worksheets("SheetName").Cells....