Добрый день. Работал, никаких изменений не производил, перестал работать. В ячейках где должна отображаться информация отображается #ССЫЛКА!
Макрос из другой книги, с результирующего листа выводит информацию.
Параметры-Центр управления безопасностью-параметры центра управления безопасностью-параметры макросов-включить все макросы. Включено.
| Код |
|---|
Function IsBookOpen(wbName As String) As Boolean
Dim wbBook As Workbook
For Each wbBook In Workbooks
If wbBook.Name <> ThisWorkbook.Name Then
If wbBook.Name = wbName Then IsBookOpen = True: Exit For
End If
Next wbBook
End Function
Private Sub Worksheet_Activate()
Dim sShName As String, sAddress As String, vData
'Отключаем обновление экрана
If IsBookOpen(Range("O1")) Then
MsgBox "Файл -" + Range("O1") + "- открыт, синхронизации нет!"
Else
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual 'отключаю расчёт формул, чтобы выводило значения а не ссылки
'Workbooks.Open ThisWorkbook.Path "\Работа 2015.xlsm"
Workbooks.Open ThisWorkbook.Path & "\" & Range("N1") ' & ".xlsm"
sAddress = "D2:I1000" 'или одна ячейка - "A1"
'получаем значение
vData = Sheets("Список").Range(sAddress).Value
ActiveWorkbook.Close False
'Записываем данные на активный лист книги,
'с которой запустили макрос
If IsArray(vData) Then
[A2].Resize(UBound(vData, 1), UBound(vData, 2)).Value = vData
Else
[O1] = vData
End If
'Включаем обновление экрана
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End If
End Sub
|