Добрый день! Имеется файл с макросами. В файле есть умная таблица, сводная таблица и таблица Power Query. В файле есть макросы, которые обнавляют сводную и квери таблицы автоматически при переходе на листы содержащие эти таблицы (листы "КЖ" и "Отчет"). Файл работал нормально, но в один прекрасный момент.....возникли следующие проблемы: 1. Файл стал очень долго запускаться 2. При переходе на листы "КЖ" возникает ошибка "run-time error 1004 метод refreshtable из класса pivottable завершен неверно" 3. При переходе на листы "Отчет" возникает ошибка "run-time error '-2147217842 (80040e4e)' automation error"
но при запуске этих макросов, при нахождении на листе, они срабатывают без ошибок. складывается впечатление, что виноват не макрос.... поиск ничего не дал (или я не понял что надо исакть)
Пытался найти решение в других темах,но увы, либо не нашел, либо не понял......
Есть 2 макроса: Макрос1 - борется со вставками, разрешая только вставку значений. Макрос2 - переносит данные(определенные ячейки) из одного файла (любого) в свой файл (1.xlsm)
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 'Макрос1 - для вставка только значений
If Application.CutCopyMode Then
Application.EnableEvents = 0
Application.Undo: Target.PasteSpecial xlPasteValues
Application.EnableEvents = -1
End If
End Sub
Код
Sub S4itivanie() 'Макрос2 - копирование из книги
Set ImaKnig1 = ThisWorkbook
ImaKnig2 = Application.GetOpenFilename _
("Excel files(*.xls*),*.xls*", 1, "Выбрать Excel файлы для передачи данных", , False)
If VarType(ImaKnig2) = vbBoolean Then
Exit Sub
End If
ImaKnig3 = Dir(ImaKnig2)
If BookOpenClosed((ImaKnig3)) Then
Workbooks(ImaKnig3).Worksheets("Спецификация").Range("A2:J23").Copy
ImaKnig1.Activate
Sheets("Спецификация").Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
Else
Workbooks.Open (ImaKnig2)
Workbooks(ImaKnig3).Worksheets("Спецификация").Range("A2:J23").Copy
ImaKnig1.Activate
Sheets("Спецификация").Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
Workbooks(ImaKnig3).Close (False)
End If
End Sub
'функция, предназначенная для проверки, открыта или закрыта рабочая книга.
Function BookOpenClosed(wbName As String) As Boolean
Dim myBook As Workbook
On Error Resume Next
Set myBook = Workbooks(wbName)
BookOpenClosed = Not myBook Is Nothing
End Function
Так вот, во время работы Макроса2, когда он вставляет значения в "свой файл", его перехватывает Макрос1 и тут то происходит глюк...Как я понял глючит: Application.Undo: Target.PasteSpecial xlPasteValues - т.к. не может отменить действие Макроса2.
Думал отключить обработку событий, чтоб Макрос1 не срабатывал, но это вызвало другую ошибку
Вопросы: 1. Можно как то отключать Макрос1 при выполнении Макроса2 (откл. из Макроса2) 2. Может есть другой вариант Макроса1 - для вставки только значений (облазил инет ничего не нашел)
при загрузке файла вылетает ошибка о цик. ссылке. внизу слева пишет какая ячейка,но вней вроде нет цик.ссылки. и пишет "но источник ошибок отобразить нельзя". доэтого все быро хорошо,а щя прям мистика
помогите разобраться, что за проблема,сам пытался так и не понял!
Добрый день! Делаю график дежурств: 5 групп дежурящих людей: 1-ая в понедельник 2-ая во вторник ............... 5-ая в пятницу. Дежурства начинаются с 1 сентября и до 1 сентября след. года.
все это хорошо но есть одно,НО: помимо дней недели эти группы дежурят еще и в выходные (Суб. и Воскр.), то есть: 1-ая в первый выходной (например в субботу) 2-ая во второй вых. (уже в воскр.) 3-я в след. выходной (опять суб.) ................................. и так далее весь год, где отправной точкой является первый выходной сентября, а конечной - последний выходной августа.
как сделать так,чтоб excel сам выделял эти выходные для каждой группы! (Желательно без макросов)