Добрый день! Не знаю в чём дело... Пока на работе, не могу проверить в другой версии экселя. Но вдруг перестал запускаться эксель со старой книгой PERSONAL.XLSB в папке "XLSTART". Вернее эксель пытается открыться, но у него это происходит вечно... Когда убрал эту книгу из корневой папки и создал новую, всё норм... но не пойму, как теперь мне восстановить все макросы из той личной книги... мб кто-нибудь сталкивался? Блин, не в той ветке создал (или в той?). Не могли бы Уважаемые модераторы перенести в раздел "Вопросы по VBA".
Добрый день! Не знаю в чём дело... Пока на работе, не могу проверить в другой версии экселя. Но вдруг перестал запускаться эксель со старой книгой PERSONAL.XLSB в папке "XLSTART". Вернее эксель пытается открыться, но у него это происходит вечно... Когда убрал эту книгу из корневой папки и создал новую, всё норм... но не пойму, как теперь мне восстановить все макросы из той личной книги... мб кто-нибудь сталкивался? Блин, не в той ветке создал (или в той?). Не могли бы Уважаемые модераторы перенести в раздел "Вопросы по VBA".Roman777
Много чего не знаю!!!!
Сообщение отредактировал Roman777 - Четверг, 12.11.2015, 15:27
Переименуйте старую, откройте вручную, откройте VBA, в VBAProiect схватите мышой модуль из старой и перетащите его в новую. И так со всеми модулями.
Переименуйте старую, откройте вручную, откройте VBA, в VBAProiect схватите мышой модуль из старой и перетащите его в новую. И так со всеми модулями._Boroda_
_Boroda_, я немного не понял. Как мне схватить мышкой модуль? Ведь я в принципе не могу увидеть этих модулей, ибо файл PERSONAL.XLSB не открывается экселем... (а просто грузит его... но до открытия, мне кажется, я не дождусь)...
_Boroda_, я немного не понял. Как мне схватить мышкой модуль? Ведь я в принципе не могу увидеть этих модулей, ибо файл PERSONAL.XLSB не открывается экселем... (а просто грузит его... но до открытия, мне кажется, я не дождусь)...Roman777
Это если автозагрузкой. А Вы попробуйте его перенести в другую папку, переименовать и просто вручную отрыть. Кстати, при открытии держите нажатым Шифт - тогда макросы на открытие (если они есть) не отработают. И не помешало бы разобраться в причине зависания - просмотреть коды. Конечно, можно открыть Персонал любым архивом и скопировать оттуда соответствующие макросам папки в пустой файл, но 1. Легко запутаться; 2. проблему с зависанием это может и не решить.
Это если автозагрузкой. А Вы попробуйте его перенести в другую папку, переименовать и просто вручную отрыть. Кстати, при открытии держите нажатым Шифт - тогда макросы на открытие (если они есть) не отработают. И не помешало бы разобраться в причине зависания - просмотреть коды. Конечно, можно открыть Персонал любым архивом и скопировать оттуда соответствующие макросам папки в пустой файл, но 1. Легко запутаться; 2. проблему с зависанием это может и не решить._Boroda_
Roman777, у Вас эта проблема в 2013-м возникла? Если да - то откройте эту книгу в 2010-м (или 2007), поменяйте что-то а потом сохраните. У меня такое было и не раз - это какой-то глюк сохранения в 2013-м Excel. Что интересно в 2010-м открывается без вопросов. Видать что - то резанули в программе
Roman777, у Вас эта проблема в 2013-м возникла? Если да - то откройте эту книгу в 2010-м (или 2007), поменяйте что-то а потом сохраните. У меня такое было и не раз - это какой-то глюк сохранения в 2013-м Excel. Что интересно в 2010-м открывается без вопросов. Видать что - то резанули в программе SLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Четверг, 12.11.2015, 16:21
_Boroda_, SLAVICK, Всё, спасибо! Действительно пересохранение на 2010-м помогло. При открытии уже в 2013м ругнулся (а я даж не глянул что написало в надписи(() на первую строку ("Function SumMM(rng As Range) As Single"). [vba]
Код
Function SumMM(rng As Range) As Single Dim Rn() As Single, Rn1() As Single, Sum As Single Dim k As Long, k1 As Long i_n = rng.Cells(Rows.Count, rng.Column).End(xlUp).Row ReDim Rn(i_n - 1) ReDim Rn1(i_n - 1, 2) For i = 1 To i_n Rn(i - 1) = rng.Cells(i, rng.Column) Next i For i = 0 To i_n - 1 If Rn(i) < 0 Then Sum = 0 Do While Rn(i) < 0 i = i + 1 k = k + 1 Sum = Sum + Rn(i) Loop k = 0 k1 = k1 + 1 Rn1(k1, 1) = Rn(i) Rn1(k1, 2) = k End If Next i For i = 1 To i_n If Rn1(k1, 1) <> 0 Then If Rn1(k1, 2) >= SumMM Then: SumMM = Rn1(k1, 2) End If Next i End Function
[/vba]
_Boroda_, SLAVICK, Всё, спасибо! Действительно пересохранение на 2010-м помогло. При открытии уже в 2013м ругнулся (а я даж не глянул что написало в надписи(() на первую строку ("Function SumMM(rng As Range) As Single"). [vba]
Код
Function SumMM(rng As Range) As Single Dim Rn() As Single, Rn1() As Single, Sum As Single Dim k As Long, k1 As Long i_n = rng.Cells(Rows.Count, rng.Column).End(xlUp).Row ReDim Rn(i_n - 1) ReDim Rn1(i_n - 1, 2) For i = 1 To i_n Rn(i - 1) = rng.Cells(i, rng.Column) Next i For i = 0 To i_n - 1 If Rn(i) < 0 Then Sum = 0 Do While Rn(i) < 0 i = i + 1 k = k + 1 Sum = Sum + Rn(i) Loop k = 0 k1 = k1 + 1 Rn1(k1, 1) = Rn(i) Rn1(k1, 2) = k End If Next i For i = 1 To i_n If Rn1(k1, 1) <> 0 Then If Rn1(k1, 2) >= SumMM Then: SumMM = Rn1(k1, 2) End If Next i End Function