Данные функции могут быть полезны, если вы хотите спрятать некоторые значения в книге ExcelФункция SaveValue предназначена для создания (изменения существующих) имён в книге, а функция GetValue - для получения ранее сохранённых значений. Sub SaveValue(ByRef WB As Workbook, ByVal Parameter As String, ByVal NewValue As String) ' создаёт в книге WB скрытое имя Parameter со значением NewValue Dim n As Name: On Error Resume Next: Err.Clear NewValue = "%%%" & NewValue & "%%%" WB.Names(Parameter).RefersTo = NewValue If Err Then WB.Names.Add Parameter, NewValue WB.Names(Parameter).Visible = False End Sub Function GetValue(ByRef WB As Workbook, ByVal Parameter As String) As String ' возвращает ранее сохранённое значение в скрытом свойстве книги On Error Resume Next GetValue = WB.Names(Parameter).RefersTo GetValue = Split(GetValue, "%%%")(1) End Function
Ознакомьтесь также с макросом для просмотра всех имён в книге Excel
|
|||

Комментарии
Почитайте про вывод списка всех имён книги Excel на новый лист
подскажите как обнаружить что в книге есть скрытые имена и определить их и их значения
Спасибо.
Ну а в чем проблема?
Сначала преобразовываем массив в текстовую строку, сохраняем в свойствах,
а когда данные понадобятся - извлекаем их, и преобразовываем обратно в массив
PS: Я бы сделал проще - сохранил массив на скрытом листе.
Ну или записал бы в отдельный файл (текстовый или Excel), сохранив в скрытом имени лишь путь к этому файлу.
Я имел ввиду программно сформированный двумерный массив значений
А какой массив вы туда пытаетесь записать?
Диапазон ячеек? или программно сформированный массив?
Можно попробовать сцепить массив в одну строку функцией Join, а потом эту строку записать в скрытое имя.
А как записать массив значений в скрытое имя?
Макрос принимает в качестве параметра книгу, в которую нужно записать свойство.
ThisWorkbook - книга, из которой запускается макрос
ActiveWorkbook - активная в момент запуска макроса книга
Workbooks("Имя.Расширение") - заданная пользователем книга (должна быть отрыта до запуска макроса)
Пример (книга test.xls должна быть открыта):
SaveValue Workbooks("test.xls"), "Свойство", "Значение"
End Sub
Подскажите, пожалуйста, если мне нужно сохранить какое-либо значение
не в этой книге, а в другой, - как это сделать?
Пока мои попытки ни к чему не привели.
Отправить комментарий