Всем доброго дня. Админ, точно такую же тему разместил у формулистов, предполагаю ее нужно снести. у кого какие есть соображения по следующему вопросу: Условие: В одну ячейку, допустим B3 идут связи с трех книг, при разрыве связи хотя бы одной из этих книг, в ячейке В3 остается значение. Вопрос: Как разорвать одну (две, ...) связи, при этом в ячейке В3 1)_осталась ссылка на книгу не разорванной связи, разорванные связи удалились?; 2)_осталась ссылка на книгу не разорванной связи, разорванные связи остались значениями?
Всем доброго дня. Админ, точно такую же тему разместил у формулистов, предполагаю ее нужно снести. у кого какие есть соображения по следующему вопросу: Условие: В одну ячейку, допустим B3 идут связи с трех книг, при разрыве связи хотя бы одной из этих книг, в ячейке В3 остается значение. Вопрос: Как разорвать одну (две, ...) связи, при этом в ячейке В3 1)_осталась ссылка на книгу не разорванной связи, разорванные связи удалились?; 2)_осталась ссылка на книгу не разорванной связи, разорванные связи остались значениями?XXXXXL
вот еще один макрос нашел, но он разрывает связи только в выбранных ячейках, при этом заменяет все на значения, кто сможет доработать его с частичным (выборочным) разрывом связи? помогите, очень надо....
[vba]
Код
Sub ВставитьЗначения2()
Dim ArrLinks As Variant Dim i As Integer Dim cell As Range Dim WorkRng As Range Dim FileName As String
On Error Resume Next
If TypeName(Selection) <> "Range" Then Exit Sub ArrLinks = ThisWorkbook.LinkSources(xlExcelLinks) If IsEmpty(ArrLinks) Then Exit Sub
Set WorkRng = Selection.SpecialCells(xlCellTypeFormulas)
For i = 1 To UBound(ArrLinks) FileName = FileNameOnly((CStr(ArrLinks(i)))) For Each cell In WorkRng If InStr(1, cell.Formula, FileName) Then cell.Formula = cell.Value Next Next
End Sub
[/vba]
[vba]
Код
Private Function FileNameOnly(fname As String) As String ' Возвращает имя файла fname без указания его директории Dim temp As Variant If fname = "" Then FileNameOnly = "": Exit Function temp = Split(fname, Application.PathSeparator) FileNameOnly = temp(UBound(temp)) End Function
[/vba] [moder]Коды надо оформлять тегами (кнопка #)[/moder]
вот еще один макрос нашел, но он разрывает связи только в выбранных ячейках, при этом заменяет все на значения, кто сможет доработать его с частичным (выборочным) разрывом связи? помогите, очень надо....
[vba]
Код
Sub ВставитьЗначения2()
Dim ArrLinks As Variant Dim i As Integer Dim cell As Range Dim WorkRng As Range Dim FileName As String
On Error Resume Next
If TypeName(Selection) <> "Range" Then Exit Sub ArrLinks = ThisWorkbook.LinkSources(xlExcelLinks) If IsEmpty(ArrLinks) Then Exit Sub
Set WorkRng = Selection.SpecialCells(xlCellTypeFormulas)
For i = 1 To UBound(ArrLinks) FileName = FileNameOnly((CStr(ArrLinks(i)))) For Each cell In WorkRng If InStr(1, cell.Formula, FileName) Then cell.Formula = cell.Value Next Next
End Sub
[/vba]
[vba]
Код
Private Function FileNameOnly(fname As String) As String ' Возвращает имя файла fname без указания его директории Dim temp As Variant If fname = "" Then FileNameOnly = "": Exit Function temp = Split(fname, Application.PathSeparator) FileNameOnly = temp(UBound(temp)) End Function
[/vba] [moder]Коды надо оформлять тегами (кнопка #)[/moder]XXXXXL
Сообщение отредактировал Pelena - Четверг, 01.12.2016, 11:32