2011-03-17 2 views
0

현재/활성 행에서 셀을 참조하는 간단한 방법이 있는지 궁금합니다.Excel에서 다른 시트의 선택된 행을 편집하는 방법이 있습니까?

즉 - 나는 2 개 시트에 대한 정보가 많이 나는 시트에 현재/활성 행의 정보를 표시 할 두 번째로 하나가 1

그래서 행 5 그런 다음 시트 1에서 선택한 말 시트 2로 간다면 5 행의 모든 ​​정보가 시트 2에 표시됩니다. 그런 다음 시트 1의 8 행을 선택하면 시트 2의 정보가 시트 1의 8 행의 정보 만 표시되도록 업데이트됩니다.

다시 시트 1.

갔다 어쩌면 내가 그녀의 세포에 추가 할 수있는 간단한 공식이 때 시트 2에서 만든

모든 변경 사항이 반영 될 것이다 et 2? 어쩌면의 라인을 따라 뭔가 : 나는 종류의 매크로를 사용하여 작업을 진행하게 관리했지만, 유일한 문제는 등

cell A1 on sheet 2 have =sheet1(active_row.colum1) 

and then cell A2 on sheet 2 have =sheet1(active_row.colum2) 

등이 내가 시트 2에 대한 정보를 변경하는 경우, 시트 1의 정보를 업데이트하지 않습니다.이 기능을 코드에 추가하는 방법이 있다면, 좋을 것입니다.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Dim myList 
If Target.Address <> Target.EntireRow.Address Then Exit Sub 
If Target.Rows.Count > 1 Then Exit Sub 
myList = [{"B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15"}] '<- adjust to your need 
With Target.EntireRow 
    For i = 1 To UBound(myList) 
     Sheets("sheet2").Range(myList(i)).Value = .Cells(i).Value 
    Next 
End With 
End Sub 

어떤 제안 :

내가 지금까지 가지고있는 코드는? 당신은 공식이 작업을 수행 할 수

: :) 짧은 대답이 '아니오'

+0

은 VBA와 함께 할 수 있습니다. 그러나 범위를 강조 표시하기 위해 anohter 시트의 선택이 옳은 것인지 확실합니까? 두 번째 시트 또는 다른 시트의 셀에 5 또는 8을 쓰는 것이 훨씬 더 간단합니다. 그런 다음 두 번째 시트에서 변경되는 모든 것은 수식에 의해 유도 될 수 있습니다. – momobo

+0

무슨 뜻인지 정말로 모르겠다. 그러나 일을하는 더 간단한 방법이 있다면 나는 확실히 그것을위한 것입니다!:) – ade123

+0

내가 할 수 있기를 원하는 것은 시트 1의 5 행에 있다고 말하면서 시트 2가 sheet1, row5의 모든 정보를 보여주기를 원한다. 다음으로 sheet1에 12 행을 말하면, sheet1, row5의 정보를 보여주는 것으로부터 sheet1, row12의 정보를 보여주는 것으로 바뀌도록 sheet2에 대한 정보를 원합니다. 나는 이것을 아주 잘 설명 할 지 모르겠다. P – ade123

답변

0

예, 가능하지만 조금 복잡합니다.

은 자동으로 1

은 당신이해야 할 것은 당신이 같은 선택 이벤트를 사용하는 것입니다 시트를 업데이트 할 시트 2를 편집 할 수 다음 한 시트 1에서 선택한 행이 시트 2에 표시 할, 그리고 시트 2에 행을 복사합니다. 그런 다음 시트 1의 Activate 이벤트를 사용하여 시트 1에 다시 행을 복사해야합니다. 다음 코드는 시트 1에 셀에 워크 시트 함수 (수식)가 없다고 가정합니다. 당신은 여전히 ​​그것을 할 수 있지만 공식을 보존하고 그것을 대체해야합니다.

시트 1 개 코드 :

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

If Target.Address <> Target.EntireRow.Address Then Exit Sub 
If Target.Rows.Count > 1 Then Exit Sub 

Target.EntireRow.Copy 
Sheets("Sheet2").Activate 
Sheets("Sheet2").Range("A1") = Target.Row 
Sheets("Sheet2").Rows(2).PasteSpecial (xlPasteValues) 

End Sub 

시트 2 코드는 :

Private Sub Worksheet_Deactivate() 

If Sheets("Sheet2").Range("A1") > 0 Then 
    Sheets("Sheet2").Rows(2).Copy 
    Sheets("Sheet1").Activate 
    ActiveSheet.Rows(Sheets("Sheet2").Range("A1")).EntireRow.PasteSpecial (xlPasteValues) 
    Sheets("Sheet2").UsedRange.ClearContents 
End If 

End Sub 
1

, 엑셀이 방법을 작동하지 않습니다. 활성화 된 시트 나 다른 시트의 활성 셀에서 작동하는 함수는 없습니다. 또한 Excel 계산 엔진은 선택 항목을 변경하거나 시트간에 이동할 때 다시 계산해야 할 필요성을 인식하지 못합니다.

+0

나는 이것이 사실일지도 모른다라고 생각했다. 내가 매크로 내에서 그것을 할 일종의 관리했지만 유일한 문제는 내가 sheet2에 대한 정보를 변경하면, 그것은 sheet1에 대한 정보를 updatet하지 않습니다. 누구든지 내가이 기능을 어떻게 추가 할 수 있을지에 대한 조언이 있다면 그것은 좋을 것입니다. 지금까지 가지고있는 매크로 코드를 표시하도록 내 질문을 업데이트했습니다. – ade123

+0

매크로를 키 입력에 할당하면 쉽게 다시 실행할 수 있습니다. 원하는만큼 자동으로 실행되지는 않지만 아무 것도없는 것보다 낫습니다. – paulmorriss

+0

나는 그걸 어떻게 실제로 알 수 있을지 모르겠습니다. 이것은 시트 2의 내용을 변경하면 sheet1의 정보를 업데이트한다는 의미입니까? 이것에 대한 도움이 될 것입니다! 필자가 원하는대로 할 수있게되었으므로 매크로에 표시된 정보를 편집 할 수있는 기능을 추가하고 마스터 시트에서이 업데이트를 수행하면 훌륭합니다! 지금까지 가지고있는 매크로 코드를 보여주기 위해 맨 위의 질문을 업데이트했습니다 :) – ade123

관련 문제