nick7inc
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код, который сбрасывает стили на значения по-умолчанию для текущей книги (на запрос про объединение стилей надо ответить утвердительно). Код: Public Sub ResetWorkbookStyles() Dim blank As Workbook, wb As Workbook, found As Boolean, v As Variant Set wb = Application.ActiveWorkbook If wb Is Nothing Then MsgBox "No active workbook", vbInformation: Exit Sub v = MsgBox("Reset workbook '" + wb.name + "' styles?", vbYesNo) If Not v = vbYes Then Exit Sub Set blank = Application.Workbooks.Add Dim oSt1 As Style, oSt2 As Style Dim removelist As Collection Set removelist = New Collection For Each oSt1 In wb.Styles For Each oSt2 In blank.Styles found = (oSt2.name = oSt1.name): If found Then Exit For Next oSt2 If Not found Then removelist.Add oSt1 Next oSt1 For Each oSt1 In removelist: oSt1.Delete: Next oSt1: Set removelist = Nothing wb.Styles.Merge Workbook:=blank blank.Close savechanges:=False End Sub | Полезно для тех, кто хочет видеть шрифт своей версией офиса в листах по-умолчанию в документах, полученных из другой версии офиса, где шрифт по-умолчанию - другой. Например, если открыть книгу из офиса 2010 в офисе 2003, то на листе будет шрифт Calibri вместо Arial. Данный макрос удаляет все стили, которых нет в пустой книге, который он создаёт (эта книга считается за образец). Стили, чьи имена есть в обоих книгах, переносятся из пустой книги в активную.
---------- Джин, не лезь в бутылку. |
| Всего записей: 1138 | Зарегистр. 04-05-2007 | Отправлено: 18:16 23-10-2020 | Исправлено: nick7inc, 18:34 23-10-2020 |
|