Добрый день! подскажите пожалуйста как можно с помощью макроса отключить сообщение о циклической ссылке в файле при его открытии? ну или хотя бы забиндив на кнопку? У меня циклический алгоритм, и мне не нравится постоянное вылетание ошибки, которой нет на самом деле. Через отключение вручную в настройках - не устраивает.
Добрый день! подскажите пожалуйста как можно с помощью макроса отключить сообщение о циклической ссылке в файле при его открытии? ну или хотя бы забиндив на кнопку? У меня циклический алгоритм, и мне не нравится постоянное вылетание ошибки, которой нет на самом деле. Через отключение вручную в настройках - не устраивает.leskris
Сообщение отредактировал leskris - Вторник, 14.07.2015, 10:40
Не проверял, но 99% - никак. Excel сначала обрабатывает свои сообщения, и только потом события VBA. Так что, даже при наличии макроса, сначала вывалится сообшение, и только потом запустится макрос, его блокирующий.
Не проверял, но 99% - никак. Excel сначала обрабатывает свои сообщения, и только потом события VBA. Так что, даже при наличии макроса, сначала вывалится сообшение, и только потом запустится макрос, его блокирующий.RAN
У меня в твоем файле ошибку выдало, У тебя наверное в настройках отключено сообщение об ошибки!! я вот и хочу узнать можно как-то автоматом прописать в настройках отключить вывод этого сообщения или в экселе это заблокировано.
У меня в твоем файле ошибку выдало, У тебя наверное в настройках отключено сообщение об ошибки!! я вот и хочу узнать можно как-то автоматом прописать в настройках отключить вывод этого сообщения или в экселе это заблокировано.leskris
Сообщение отредактировал leskris - Вторник, 14.07.2015, 12:40
Option Explicit Dim objFSO, objExcel, ExcelPath, wb
Set objFSO = CreateObject("Scripting.FileSystemObject") ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) Set objExcel = CreateObject("Excel.Application") Set wb = objExcel.Workbooks.Open (ExcelPath & "\ИмяПрограммы.xls") objExcel.Visible = False Set objExcel = Nothing
[/vba] Нашел в инете, что можно вставить скрипт в файл с расширением *.vbs и скрипт игнорирует настройки макросов, может можно такое для ошибок сделать. Но я реально в этом совсем ноль. Может кто подскажет че делать?
[vba]
Код
Option Explicit Dim objFSO, objExcel, ExcelPath, wb
Set objFSO = CreateObject("Scripting.FileSystemObject") ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName) Set objExcel = CreateObject("Excel.Application") Set wb = objExcel.Workbooks.Open (ExcelPath & "\ИмяПрограммы.xls") objExcel.Visible = False Set objExcel = Nothing
[/vba] Нашел в инете, что можно вставить скрипт в файл с расширением *.vbs и скрипт игнорирует настройки макросов, может можно такое для ошибок сделать. Но я реально в этом совсем ноль. Может кто подскажет че делать?leskris
в Разделе формулы в настройках, но реально там нет отключения ошибок с циклическими ссылками, остальные ошибки можно отключить, а эту нет, странно я был уверен что раньше такое отключал, может в 2003 это было возможно?!
в Разделе формулы в настройках, но реально там нет отключения ошибок с циклическими ссылками, остальные ошибки можно отключить, а эту нет, странно я был уверен что раньше такое отключал, может в 2003 это было возможно?!leskris
Нашел в инете, что можно вставить скрипт в файл с расширением *.vbs и скрипт игнорирует настройки макросов, может можно такое для ошибок сделать. Но я реально в этом совсем ноль. Может кто подскажет че делать?
[vba]
Код
Dim objFSO, objExcel, ExcelPath, wb Dim wbTmp
Set objFSO = CreateObject("Scripting.FileSystemObject") ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName)
Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set wbTmp = objExcel.Workbooks.Add
iter_on Set wb = objExcel.Workbooks.Open (ExcelPath & "\Книга4.xlsm") objExcel.OnTime Now + TimeSerial(0, 0, 3), "iter_off"
wbTmp.Close
'--------------------------------- Sub iter_on() objExcel.Iteration = True End Sub
Sub iter_off() objExcel.Iteration = False End Sub
[/vba]
создай vbs-файл, положи его в папку с твоим файлом и запусти
Нашел в инете, что можно вставить скрипт в файл с расширением *.vbs и скрипт игнорирует настройки макросов, может можно такое для ошибок сделать. Но я реально в этом совсем ноль. Может кто подскажет че делать?
[vba]
Код
Dim objFSO, objExcel, ExcelPath, wb Dim wbTmp
Set objFSO = CreateObject("Scripting.FileSystemObject") ExcelPath = objFSO.GetParentFolderName(WScript.ScriptFullName)
Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True Set wbTmp = objExcel.Workbooks.Add
iter_on Set wb = objExcel.Workbooks.Open (ExcelPath & "\Книга4.xlsm") objExcel.OnTime Now + TimeSerial(0, 0, 3), "iter_off"
wbTmp.Close
'--------------------------------- Sub iter_on() objExcel.Iteration = True End Sub
Sub iter_off() objExcel.Iteration = False End Sub
[/vba]
создай vbs-файл, положи его в папку с твоим файлом и запустиСаня
включил вручную в настройках "итеративные вычисления" сообщения о циклической ссылке пропало, но можно все-таки как-то автоматически это сделать чтобы при загрузке на других компах не выдавало эту ошибку?
включил вручную в настройках "итеративные вычисления" сообщения о циклической ссылке пропало, но можно все-таки как-то автоматически это сделать чтобы при загрузке на других компах не выдавало эту ошибку?leskris
Excel сначала обрабатывает свои сообщения, и только потом события VBA.
НО будьте осторожны, поскольку сообщение перестанет вылазить во всех файлах... Мое имхо - лучше убрать неверные формулы, зачем они нужны, если вычисляются неверно
Попробуйте так: [vba]
Код
Private Sub Workbook_Open() Application.ErrorCheckingOptions.EvaluateToError = False End Sub
[/vba] Ошибка вылетит только первый раз - потом после повторного открытия вылетать не должна это связано с :
Excel сначала обрабатывает свои сообщения, и только потом события VBA.
НО будьте осторожны, поскольку сообщение перестанет вылазить во всех файлах... Мое имхо - лучше убрать неверные формулы, зачем они нужны, если вычисляются неверно SLAVICK
Ярослав, класс. Почему-то все начали учить ТС "плохому". Конечно нужно удалять не сообщение об ошибке, а причину, вызвавшую это сообщение.
Проблема в том что они вычисляются верно, а чтобы избежать цикличной сылке мне пришлось бы в 5 раз больше кода писать!! я точно знаю что там все впорядке...
Ярослав, класс. Почему-то все начали учить ТС "плохому". Конечно нужно удалять не сообщение об ошибке, а причину, вызвавшую это сообщение.
Проблема в том что они вычисляются верно, а чтобы избежать цикличной сылке мне пришлось бы в 5 раз больше кода писать!! я точно знаю что там все впорядке...leskris
нужно удалять не сообщение об ошибке, а причину, вызвавшую это сообщение
лично я так и делаю А в циклических алгоритмах тоже можно прописать проверки для перескока или выхода из цикла... конечно код вырастет, но лучше один раз сделать правильно Мне иногда присылают отчеты с такими ссылками, поэтому я себе тоже отключил сообщение - так проще, чем заставить переделать отчет
нужно удалять не сообщение об ошибке, а причину, вызвавшую это сообщение
лично я так и делаю А в циклических алгоритмах тоже можно прописать проверки для перескока или выхода из цикла... конечно код вырастет, но лучше один раз сделать правильно Мне иногда присылают отчеты с такими ссылками, поэтому я себе тоже отключил сообщение - так проще, чем заставить переделать отчет SLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Среда, 15.07.2015, 12:01