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

Код: 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
19.07.2006, 12:40
    #33863515
Женя!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
Спасибо, запустила, макрос пишет, что связей нет, и лист-то в общем почти пустой, там им и быть-то негде, но в меню Правка прописано, что связь есть и при открытии выдает запрос на обновление... Глюк какой-то, прям не знаю, что и делать.
А за макрос спасибо, пригодится еще не раз.
...
Рейтинг: 0 / 0
19.07.2006, 12:41
    #33863521
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
кстати, была у меня задача: чужой файл редактировать, который был напичкан формулами. искать связи было проблемно. вышел из положения сделующим макросом, котрый выделяет цветом "важности", найти которые можно было только щелкая каждую ячейку.
Но внешние связи он не обнаруживает(см. выше)
Код: 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
19.07.2006, 12:42
    #33863525
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
на всех листах нужно поочередно запустить
...
Рейтинг: 0 / 0
19.07.2006, 12:43
    #33863528
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
Женя!Спасибо, запустила, макрос пишет, что связей нет, и лист-то в общем почти пустой, там им и быть-то негде, но в меню Правка прописано, что связь есть и при открытии выдает запрос на обновление... Глюк какой-то, прям не знаю, что и делать.
А за макрос спасибо, пригодится еще не раз.

на всех листах нужно поочередно запустить
...
Рейтинг: 0 / 0
19.07.2006, 12:50
    #33863557
Женя!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
Можно я этот файл как-то выложу? не знаю только, как это делается
...
Рейтинг: 0 / 0
19.07.2006, 12:51
    #33863563
Женя!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
Ага, нашла.. вот мозги-то набекрень...
...
Рейтинг: 0 / 0
19.07.2006, 13:07
    #33863624
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
наверное формула в ячейке A3 смущает Excel :)
...
Рейтинг: 0 / 0
19.07.2006, 13:11
    #33863649
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
У тебя там именованные диапозоны связаны с другой книгой
"вставка" - "Имя" - "Присвоить"
там увидишь кучу диапозонов удали их.
...
Рейтинг: 0 / 0
19.07.2006, 13:14
    #33863662
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
или запусти это
Код: plaintext
1.
2.
3.
4.
Sub f()
    For Each ff In ThisWorkbook.Names
        ff.Delete
    Next
End Sub
...
Рейтинг: 0 / 0
19.07.2006, 13:22
    #33863694
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
или этот. он уберет несвязанные имена
Код: 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
19.07.2006, 13:26
    #33863714
Женя!
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
Волшебник! Снимаю шляпу перед чужой мудростью, спасибо огромное!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
09.08.2012, 12:53
    #37910443
Dobrivecher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи между книгами Excel
vbapro, Спаситель!!! Гений!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Связи между книгами Excel / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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