powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Связи между книгами Excel
14 сообщений из 14, страница 1 из 1
Связи между книгами Excel
    #33863330
Женя!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, грамотные люди,
у меня есть две книги Excel, между которыми есть какие-то связи, мне надо поймать, что это за связи и удалить их. Не пойму, как это можно сделать..
Меню Правка-Связи показывает ссылку на файл, но вот где конкретно... в какой ячейке?...
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863484
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выдели диапазон, в котором искать связи (хоть весь лист) и запусти этот макрос. он выделит цветом все внешние ссылки

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Sub FindeExternalConstraints()
Dim rngOne As Range
Dim rngAll As Range
Dim blnEmpty As Boolean
Dim strFormula As String


Set rngAll = Application.Intersect(Selection, ActiveSheet.UsedRange)

If rngAll Is Nothing Then
    MsgBox "Range does not intersect with UsedRange"
Else
    rngAll.Select
End If

blnEmpty = True

On Error Resume Next

For Each rngOne In rngAll
    strFormula = rngOne.Formula

    If InStr( 1 , strFormula, "[") <>  0  Then
        rngOne.Interior.ColorIndex =  4 
        blnEmpty = False
    End If
    
Next rngOne

If blnEmpty Then
MsgBox "No constraints!"
End If
End Sub
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863515
Женя!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, запустила, макрос пишет, что связей нет, и лист-то в общем почти пустой, там им и быть-то негде, но в меню Правка прописано, что связь есть и при открытии выдает запрос на обновление... Глюк какой-то, прям не знаю, что и делать.
А за макрос спасибо, пригодится еще не раз.
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863521
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, была у меня задача: чужой файл редактировать, который был напичкан формулами. искать связи было проблемно. вышел из положения сделующим макросом, котрый выделяет цветом "важности", найти которые можно было только щелкая каждую ячейку.
Но внешние связи он не обнаруживает(см. выше)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
Sub EmptyORNnot()
Dim rngOne As Range
Dim rngAll As Range
Dim blnEmpty As Boolean
Dim strName As String


Set rngAll = Application.Intersect(Selection, ActiveSheet.UsedRange)

If rngAll Is Nothing Then
    MsgBox "Ranges do not intersect"
Else
    rngAll.Select
End If

blnEmpty = True


On Error Resume Next

For Each rngOne In rngAll
'============================
    If rngOne.Formula <> "" Then
        MsgBox "Íå ïóñòî!"
        rngOne.Interior.ColorIndex =  4 
        blnEmpty = False
    End If
'============================
    strName = ""
    strName = rngOne.Name
    If strName <> "" Then
        MsgBox "Åñòü èìÿ! " & vbCrLf & rngOne.Name
        rngOne.Interior.ColorIndex =  4 
        blnEmpty = False
    End If
'============================
    strName = ""
    strName = FindDependents(rngOne)
    
    If strName <> "" Then
        MsgBox "Åñòü çàâèñèìîñòè! " & vbCrLf & strName
        rngOne.Interior.ColorIndex =  4 
        blnEmpty = False
    End If
'============================
    strName = ""
    strName = FindPrecedents(rngOne)
    
    If strName <> "" Then
        MsgBox "Åñòü âëèÿíèå íà íå¸! " & vbCrLf & strName
        rngOne.Interior.ColorIndex =  4 
        blnEmpty = False
    End If
Next rngOne

If blnEmpty Then
MsgBox "Âñå ïóñòî!"
End If
End Sub
Function FindDependents(qq As Range) As String
Dim qd As Range
Dim i As Integer
    
On Error Resume Next
    i =  0 
    i = qq.Dependents.Count
    FindDependents = ""
    
    If i <>  0  Then
        For Each qd In qq.Dependents
            FindDependents = FindDependents & qd.Parent.Name & "!" & qd.Address & ";" & vbCrLf
            'qd.Interior.ColorIndex = 7
        Next qd
    End If
    

    Set qd = Nothing
End Function
Function FindPrecedents(qq As Range) As String
Dim qd As Range
Dim i As Integer
    
On Error Resume Next
    i =  0 
    i = qq.Precedents.Count
    FindPrecedents = ""
    
    If i <>  0  Then
        For Each qd In qq.Precedents
            FindPrecedents = FindPrecedents & qd.Parent.Name & "!" & qd.Address & ";" & vbCrLf
            'qd.Interior.ColorIndex = 8
        Next qd
    End If
    

    Set qd = Nothing
End Function
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863525
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на всех листах нужно поочередно запустить
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863528
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Женя!Спасибо, запустила, макрос пишет, что связей нет, и лист-то в общем почти пустой, там им и быть-то негде, но в меню Правка прописано, что связь есть и при открытии выдает запрос на обновление... Глюк какой-то, прям не знаю, что и делать.
А за макрос спасибо, пригодится еще не раз.

на всех листах нужно поочередно запустить
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863557
Женя!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно я этот файл как-то выложу? не знаю только, как это делается
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863563
Женя!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ага, нашла.. вот мозги-то набекрень...
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863624
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
наверное формула в ячейке A3 смущает Excel :)
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863649
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя там именованные диапозоны связаны с другой книгой
"вставка" - "Имя" - "Присвоить"
там увидишь кучу диапозонов удали их.
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863662
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или запусти это
Код: plaintext
1.
2.
3.
4.
Sub f()
    For Each ff In ThisWorkbook.Names
        ff.Delete
    Next
End Sub
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863694
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или этот. он уберет несвязанные имена
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub DeleteUnboundNames()
Dim CurrentName As Name

    For Each CurrentName In ActiveWorkbook.Names
        If CStr(CurrentName.Value) Like "*REF!*" Then
            MsgBox "Name " & CurrentName.Name & " will be deleted on the address  " & CurrentName.Value
            CurrentName.Delete
        End If
    Next CurrentName
End Sub
...
Рейтинг: 0 / 0
Связи между книгами Excel
    #33863714
Женя!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Волшебник! Снимаю шляпу перед чужой мудростью, спасибо огромное!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Связи между книгами Excel
    #37910443
Dobrivecher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vbapro, Спаситель!!! Гений!!!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Связи между книгами Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]