Addins. Сохранение настроек.
Thisworkbook.Worksheets(1).Cells(1,1).Value=UserForm1.TextBox1.Text
для сохранения, и
Private Sub UserForm_Initialize()
UserForm1.TextBox1.Value = ThisWorkbook.Worksheet(1).Cells(1, 1).Value
End Sub
для восстановления.Проблема возникла в UserForm_Initialize() - VBA сказал, что объект не поддерживает этот метод. Конечно, можно все это сохранять в другой файл (это как раз работает, когда вместо Thisworkbook ставишь какую-то другую), но как-то неспортивно получается - таскать за собой гору файлов etc.
Но, вообще-то, конечно не понятно можно ли так делать по отношению к addins.
Если у кого есть идеи - поделитесь, буду благодарен.
AleKo.
Привет всем еще раз. Я, конечно, понимаю, что "задолбал" с этими addins, но возникли новые трудности, преодолеть которые чё-то самому не получается. Дело вот в чем. В установленном addins необходимо сделать так, чтобы после выхода из макроса (который в этом addins) сохранялись каким-нибудь образом его настройки. Я имею ввиду, например, следующее: на форме есть textbox, желательно после закрытия формы куда-то его .Value (or .Text) сохранить так, чтобы в следующий раз при запуске оно там появилось опять. Я пытался сделать что-то типа
Thisworkbook.Worksheets(1).Cells(1,1).Value=UserForm1.TextBox1.Text
для сохранения, и
Private Sub UserForm_Initialize()
UserForm1.TextBox1.Value = ThisWorkbook.Worksheet(1).Cells(1, 1).Value
End Sub
для восстановления.Проблема возникла в UserForm_Initialize() - VBA сказал, что объект не поддерживает этот метод. Конечно, можно все это сохранять в другой файл (это как раз работает, когда вместо Thisworkbook ставишь какую-то другую), но как-то неспортивно получается - таскать за собой гору файлов etc.
Но, вообще-то, конечно не понятно можно ли так делать по отношению к addins.
Если у кого есть идеи - поделитесь, буду благодарен.
AleKo.
Попробуй самым топорным методом - сохраняй через инишник. Если же не предполагается между сохранением и вставкой что-то копировать в буфер обмена - сохраняй через него.
ThisWorkbook.Worksheets("StoredData").Range("A1").Value = "Let's go Russia!"
ThisWorkbook.Save
Сохраняй в Addins. Не забывай, что Аддинс - обычная экселевская книга, поэтому ничто экселевское ей не чуждо. Как нибудь так:
ThisWorkbook.Worksheets("StoredData").Range("A1").Value = "Let's go Russia!"
ThisWorkbook.Save
Спасибо за совет, особенно за ThisWorkbook.Save - я про это вообще забыл. В общем все заработало (синтаксические ошибки исправил, и сразу же все заработало :)).
А что, этот AddIns позволяет тебя сохранять на листах своей книги? Он без пароля, твой собственный что-ли?
Да, ты совершенно прав - он мой. Может (и скорее всего) написан не по правилам (поскольку я, вообще-то пишу в основном на си и IDL, а VB в глаза увидел недавно), но тем не менее вполне рабочий. Ну, а до пароля я просто еще не добрался.:)
Есть прекрасные 2 функции - SaveSetting и GetSetting, которые дают элементарнийший доступ к сохранению и загрузки небольшого объема данных.
А разве нельзя было это сделать чище? Вот например через реестр.
Есть прекрасные 2 функции - SaveSetting и GetSetting, которые дают элементарнийший доступ к сохранению и загрузки небольшого объема данных.
Ну ты не много размахался тут мечом как Илья Муромец, AddIns был сделан для Excel, так еще и позволяет сохранять внутри себя значения(они всегда будут при тебе, куда бы ты не таскал файл), зачем же лишний раз лезть в реестр, в некого и так все лезут кому не попадя (а потом вычищай его). Сама Microsoft советует сохранять настройки макросов на скрытых листах принадлежащих им книг, так что ИМХО лучше хранить на листах, чем в реестре...
Сама Microsoft советует сохранять настройки макросов на скрытых листах принадлежащих им книг, так что ИМХО лучше хранить на листах, чем в реестре...
Ну тогда сорри :{. Не знал, что документ тоскать будут...