Добрый день, просвященные! Подскажите возможно ли отобразить текстовое значение ячейки, в ту же ячейку основного листа, но не из одного листа, а из нескольких. Например может появиться текст на втором листе в ячейке R34C2, оно должно отобразиться на главном листе в той же ячейке. Либо этот же текст может отобразиться на третьем листе в такой же ячейке. Ячейки между собой пересекаться не будут, т.е. если ячейка R34C2 будет заполнена на одном листе, на другом этого значения уже не будет. Во вложении файл в котором интересующие ячейки выделены синим цветом. Буду рад если вам удастся помочь мне.
Добрый день, просвященные! Подскажите возможно ли отобразить текстовое значение ячейки, в ту же ячейку основного листа, но не из одного листа, а из нескольких. Например может появиться текст на втором листе в ячейке R34C2, оно должно отобразиться на главном листе в той же ячейке. Либо этот же текст может отобразиться на третьем листе в такой же ячейке. Ячейки между собой пересекаться не будут, т.е. если ячейка R34C2 будет заполнена на одном листе, на другом этого значения уже не будет. Во вложении файл в котором интересующие ячейки выделены синим цветом. Буду рад если вам удастся помочь мне.AndreyBeloff
никода не работал с Global (не было надобности, да и щас нет) но стало интересно. [vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) i = ActiveSheet.Index If i > 0 Then u = Target.Row a = Cells(u, 2).Value Call u__ End If End Sub
[/vba] [vba]
Код
Global a, u Sub u__() Sheets(1).Cells(u, 2) = a End Sub
[/vba] срабатывает тока со второго раза. почему?
никода не работал с Global (не было надобности, да и щас нет) но стало интересно. [vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) i = ActiveSheet.Index If i > 0 Then u = Target.Row a = Cells(u, 2).Value Call u__ End If End Sub
[/vba] [vba]
Код
Global a, u Sub u__() Sheets(1).Cells(u, 2) = a End Sub
[/vba] срабатывает тока со второго раза. почему?Nic70y
Событие SheetSelectionChange получает в Target ячейку, на которую перешли после изменения нужной ячейки, а не саму измененную ячейку. И только после того, как выделить опять измененнйю ячейку, событие отрабатывает то, что нужно.
Событие SheetSelectionChange получает в Target ячейку, на которую перешли после изменения нужной ячейки, а не саму измененную ячейку. И только после того, как выделить опять измененнйю ячейку, событие отрабатывает то, что нужно.Kostya_Ye
Сообщение отредактировал Kostya_Ye - Понедельник, 02.12.2019, 09:48
Public d_ As Range Sub u__() Application.EnableEvents = 0 fff = d_.Address Sheets(1).Range(d_.Address) = d_.Value Application.EnableEvents = 1 End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Index > 1 Then 'условие на ограничение диапазона ячеек, для которого все это совершается Set d_ = Intersect(Target, Sh.Range("B34:C42")) If Not d_ Is Nothing Then Call u__ End If End If End Sub
[/vba]
Поменяйте [vba]
Код
Workbook_SheetSelectionChange
[/vba] на [vba]
Код
Workbook_SheetChange
[/vba]
У меня еще такой вариант [vba]
Код
Public d_ As Range Sub u__() Application.EnableEvents = 0 fff = d_.Address Sheets(1).Range(d_.Address) = d_.Value Application.EnableEvents = 1 End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Index > 1 Then 'условие на ограничение диапазона ячеек, для которого все это совершается Set d_ = Intersect(Target, Sh.Range("B34:C42")) If Not d_ Is Nothing Then Call u__ End If End If End Sub