Низовете за частни профили често се използват за съхраняване на специфична за потребителя информация извън приложението/документа за по -късна употреба.
Можете например да съхранявате информация за най -новото съдържание в диалогов прозорец/UserForm,
колко пъти е отворена работна книга или последният използван номер на фактура за шаблон на фактура.
Информацията може да се съхранява в INI-файл, или на локалния твърд диск, или в споделена мрежова папка.
INI-файлът е обикновен текстов файл и съдържанието може да изглежда така:
[ЛИЧНО]
Фамилия = Doe
Име = Джон
Дата на раждане = 1.1.1960
UniqueNumber = 123456
Лични профилни низове за всеки потребител също могат да се съхраняват в регистъра.
Excel няма вградена функционалност за четене и запис на INI-файлове като Word (System.PrivateProfileString),
така че имате нужда от няколко API-функции, за да направите това по лесен начин.
Ето примерните макроси за писане и четене от INI-файл, съдържащ низове за личен профил.
Const IniFileName As String = "C: \ Име на папката \ UserInfo.ini"
'пътят и името на файла към файла, съдържащ информацията, която искате да прочетете/напишете
Частна функция за деклариране GetPrivateProfileStringA Lib _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strDefault As String, _ ByVal strReturnedString As String, _ ByVal lngSize As Long, ByVal strFeRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefRefer, String, Функции, Състояния _ "Kernel32" (ByVal strSection As String, _ ByVal strKey As String, ByVal strString As String, _ ByVal strFileNameName As String) Като дълга частна функция WritePrivateProfileString32 (ByVal strFileName As String, _ ByVal strSection, ByVal strValue Като низ , _ ByVal strSection As String, ByVal strKey As String, _ Незадължително strDefault) Като String Dim strReturnStri ng As String, lngSize As Long, lngValid As Long On Error Next Next If IsMissing (strDefault) Тогава strDefault = "" strReturnString = Пространство (1024) lngSize = Len (strReturnString) lngValid = GetPrivateProfileStringARee, streStree, streStree, strSe, streStree, strSe, streStree, strSee, strSee lngSize, strFileName) GetPrivateProfileString32 = Вляво (strReturnString, lngValid) При грешка GoTo 0 End Function 'примерите по -долу предполагат, че диапазонът B3: B5 в активния лист съдържа' информация за Фамилия, Име и Дата на раждане Sub WriteUserInfo () ' файлът IniFileName Ако не е WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Value) Тогава MsgBox "Не може да запише потребителска информация в" & IniFileName, _ vbExclamation, "Папка не съществува! " Излезте от подкрая, ако WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Lastname", Range ("B3"). Value WritePrivateProfileString32 IniFileName, "PERSONAL", _ "Firstname", Range ("B4"). , _ "Дата на раждане", Обхват ("B5"). Стойност End Sub Sub ReadUserInfo () 'чете информация от файла IniFileName If Dir (IniFileName) = "" След това излезте от поддиапазона ("B3"). Formula = GetPrivateProfileString32 (IniFileName , _ "PERSONAL", "Lastname") Range ("B4"). Formula = GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "Firstname") Range ("B5"). Formula = GetPrivateProfileString32 (IniFileName, _, P " "Дата на раждане") End Sub "примерът по -долу предполага, че диапазонът D4 в активния лист съдържа" информация за уникалния номер Sub GetNewUniqueNumber () Dim UniqueNumber As Long If Dir (IniFileName) = "" Тогава излезте от Sub UniqueNumber = 0 при грешка Възобновяване на следващия UniqueNumber = CLng (GetPrivateProfileString32 (IniFileName, _ "PERSONAL", "UniqueNumber")) При грешка GoTo 0 Диапазон ("D4"). Формула = UniqueNumber + 1 Ако не е WritePrivateProfileString32 (IniFileName, "PERSONAL", _ "UniqueNumber", Range ("D4"). Стойност) Тогава MsgBox "Не може да запише потребителска информация в" & IniFileName , _ vbExclamation, "Папка не съществува!" Изход от Sub End Ако End Sub