Страницы: 1
RSS
Некоторые сохраненные макросом формулы в значения выдают ошибку #знач после запуска макроса.
 
Уважаемые программисты, доброе утро!

Кто-нибудь из вас сталкивался со следующей ситуацией?
Пишу макрорекордером макрос: выделяю необходимые листы на которых заполненные таблицы с формулами, сохраняю эти листы способом (переместить или скопировать) в новой книге, сохраняю все листы в значениях и вижу как все хорошо сохранилось в значениях, все значения вижу, вижу что формулы исчезли, отключаю запись макроса.
И вот если запустить этот макрос, то возникает магия, часть ячеек где формулы возвращают очень длинные текстовые строки выдают вместо значений ошибку #знач!

Кто подскажет как это обойти!?
Изменено: Артем_81 - 26.11.2021 09:44:48
 
Правила форума подскажут.
На что люди надеются, задавая так вопрос? Ехать к Вам код посмотреть?!
 
Макрос работает, но  там где строка должна возвращать значение и это значение длинное, то возникает ошибка #знач, вот я и спрашиваю вдруг кто сталкивался с этим вопросом!?

Ниже код...
Код
[CODE
Sub Сохранение_книги()
'
' Сохранение_книги Макрос
'

'
    Sheets(Array("INFO", "DATE", "_DICT", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4")).Select
    Sheets("INFO").Activate
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    Sheets(Array("INFO", "DATE", "_DICT", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod")).Select
    Sheets("INFO").Activate
    Sheets("sved_otchetnost").Select Replace:=False
    Sheets(Array("INFO", "DATE", "_DICT", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod")).Select
    Sheets("r1_p1_p1_ostatki_5").Activate
    Sheets("sved_otchetnost").Select Replace:=False
    Sheets(Array("INFO", "DATE", "_DICT", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod", "sved_otchetnost")).Copy
    Sheets("_DICT").Select
    ActiveWindow.SelectedSheets.Visible = False
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("sved_otch_org").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("INFO").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("DATE").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_oboroty_1").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_oboroty_2").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_oboroty_3").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_oboroty_4").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_oboroty_5").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_sved_KO").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_ostatki_1").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_ostatki_2").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.TabRatio = 0.942
    Sheets("r1_p1_p1_ostatki_3").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_ostatki_4").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p1_ostatki_5").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p2_oboroty_1").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p2_oboroty_2").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p2_oboroty_3").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    Sheets("r1_p1_p3_1").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r1_p1_p3_2").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r2_p2_p1_oboroty").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r2_p2_p2_oboroty").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("r2_p2_p1_ostatki").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("sved_rukovod").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("sved_otchetnost").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("Q23").Select
    Sheets("sved_rukovod").Select
    Range("I19").Select
    Sheets("r1_p1_p1_ostatki_4").Select
    Range("D12").Select
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-2
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    Sheets("INFO").Select
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    ActiveWindow.ScrollWorkbookTabs Sheets:=1
    Sheets(Array("INFO", "DATE", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod", "sved_otchetnost")). _
        Select
    Sheets("INFO").Activate
    Cells.Select
    Application.CutCopyMode = False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("H20").Select
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    Sheets(Array("INFO", "DATE", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod", "sved_otchetnost")). _
        Select
    Sheets("INFO").Activate
    Range("B28").Select
    Sheets("sved_otch_org").Select
    Range("D23").Select
    Windows("!Формирование 0420011.xlsm").Activate
    Range("J15").Select
    Sheets(Array("INFO", "DATE", "_DICT", "sved_vid_deyat", "sved_otch_org", _
        "r1_p1_p1_oboroty_1", "r1_p1_p1_oboroty_2", "r1_p1_p1_oboroty_3", _
        "r1_p1_p1_oboroty_4", "r1_p1_p1_oboroty_5", "r1_sved_KO", "r1_p1_p1_ostatki_1", _
        "r1_p1_p1_ostatki_2", "r1_p1_p1_ostatki_3", "r1_p1_p1_ostatki_4", _
        "r1_p1_p1_ostatki_5", "r1_p1_p2_oboroty_1", "r1_p1_p2_oboroty_2", _
        "r1_p1_p2_oboroty_3", "r1_p1_p3_1", "r1_p1_p3_2", "r2_p2_p1_oboroty", _
        "r2_p2_p2_oboroty", "r2_p2_p1_ostatki", "sved_rukovod")).Select
    Sheets("r1_p1_p1_oboroty_5").Activate
    Sheets("sved_otchetnost").Select Replace:=False
    Sheets("r1_p1_p1_oboroty_5").Select
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    ActiveWindow.ScrollWorkbookTabs Sheets:=-1
    Sheets("Общий лист").Select
    Range("M10").Select
End Sub[/COdE]
Изменено: Артем_81 - 26.11.2021 10:38:22
 
Ниже скрин, там где #знач! изначально была формула, которую макрос преобразовывал в значение, и я видел что это значение сохранялось при отработке макроса на этапе его писания, но вот после остановки записи и при запуске макроса, возникает эта лажа.
Во вложении файл со скрином части листа  
Изменено: Артем_81 - 26.11.2021 10:27:17
 
Артем_81, код должен быть МЕЖДУ тэгами, а у вас они в конце без содержимого
Не говоря уже про "скрин", представленный в виде длиннющего списка символов  :D
Изменено: Jack Famous - 26.11.2021 10:25:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Поправил.

Нашел причину ошибки - это формулы массива. Если сделать обычную формулу, то макрос отрабатывает все листы без #знач!
Кто знает что за нюансы у макросов с работой с этим типом формул?
 
Цитата
Артем_81 написал:
Кто знает что за нюансы у макросов с работой с этим типом формул?
Ограничение в 255 символов
 
Это не относится к данной теме. Макрос успешно возвращает строки и по 900 символов после того как формулы массива изменил на обычные. Т.ч. вопрос кто что может поведать по нюансам работы макроса с формулами массива остается открытым, если кто сталкивался будет интересно узнать что-то новое об этом.
Страницы: 1
Наверх