2012-08-27 3 views
1

엑셀 시트에 여러 개의 시트가 포함되어 있습니다. 이 질문을 위해 시트의 이름은 Sheet1, Sheet2, Sheet3 등입니다. sheet1의 A 열을 나머지 시트 전체에 복제하고 새 셀을 sheet1의 A 열에 추가하면 통합 문서 내의 다른 시트에 자동으로 입력됩니다. 나는 이것을위한 "끝 범위; ie : A100000"세트를 갖고 싶어하지 않을 것이다. 예를 들어, Sheet1의 A1 셀에 First를 입력하면 "First"라는 단어가 Sheet2의 A1 셀에도 나타납니다. 나는 다음 코드를 사용했고 작동하지 않는 것 같다. 어떤 도움이라도 대단히 감사하겠습니다.하나의 엑셀 시트에서 자동으로 업데이트되는 다른 여러 엑셀 시트로의 미러링

Private Sub Worksheet_Change(ByVal Target As Range) 
     Call UpdateFromSheet1 
End Sub 

Sub UpdateFromSheet1(ByVal Sh As Object, ByVal Target As Range) 
    If Sh.CodeName = "Sheet1" Then 
     If Not Intersect(Target(1, 1), Range("A1:A1000")) Is Nothing Then 
      Sh.Range("A1:A1000").Copy Sheet2.Range("A1") 
     End If 
    End If 
End Sub 
+0

후속 시트에서 값을 ("A를 예제로 사용") = "Sheet1! A1"'으로 설정하고 수식을 충분한 수의 행과 열로 복사하여이를 공식적으로 수행 할 수 있습니까? – hannebaumsaway

+0

Target 매개 변수 (또는 Sh 매개 변수)를 UpdatefromSheet에 전달하지 않습니다. –

답변

1

깨끗한 찾고 비 VBA 솔루션을

UPDATE, 당신은 다른 사람이 언급 한 수식 참조를 사용하지만, 다음과 같이 입력 할 수 있습니다.

In Sheet2 셀 A1 = If(Sheet1!A1="","",Sheet1!A1) 그런 식으로 열 A 전체를 채울 수 있으며 Sheet1에 데이터가없는 행이있는 경우 "0"팝업이 표시되지 않습니다.

나는 일반적인 생각을 가지고 있다고 생각하지만, 적절한 장소에 코드를 가지고 있지 않을 수도 있습니다. VBA 솔루션을

:

먼저, 당신은 Worksheet_Change 이벤트에서 하위를 호출 할 필요는 없다 (물론 다른 이유로이 서브를 사용하고 여기에 변수를 전달하지 않으려면. 둘째, 당신은 "Sheet1의"당신이 원하는대로 할 것의 VBE에서 워크 시트 개체에서이 코드를 삽입하는 경우 :.

Option Explicit 

Private Sub Worksheet_Change(ByVal Target As Range) 

If Not Intersect(Target, Columns("A")) Is Nothing Then 

    Dim wks As Worksheet 
    For Each wks In Sheets(Array("Sheet2", "Sheet3")) 

     Target.EntireColumn.Copy wks.Columns(1) 

    Next 

End If 


End Sub 
0

이 엑셀에 대한 아주 기본적인 사용 당신은 동일한 세포를 설정할 수있다 마다 기타. 당신은 이것을 위해 VBA 매크로가 필요하지 않습니다.

당신은 시트 2 및 Sheet3의에 셀에 "A1"을이를 넣을 경우 :

=Sheet1!A1 
당신은 A1에 뭔가를 입력 할 때 다음에,이 시트 2의 "미러링"됩니다

3. 당신이 아래를 자동 완성 할 수 있습니다 시트 2 및 3의 A 열에있는 모든 셀에.

자동 완성에 익숙합니까?

당신은 내가 방금 말한 아무것도 이해하지 않고 그냥 다음 매크로를 실행이 실행 멀리 입력을 시작하려면 :

Sub MacroBasicQuestion() 

Dim wbk As Workbook 
Set wbk = ThisWorkbook 

Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Dim ws3 As Worksheet 
Set ws1 = wbk.Sheets(1) 
Set ws2 = wbk.Sheets(2) 
Set ws3 = wbk.Sheets(3) 

Dim cell As Range 

Set cell = ws2.Range("A1:A1") 
ws2.Select 
cell.FormulaR1C1 = "=Sheet1!RC" 
cell.Select 
Selection.AutoFill Destination:=Range("A:A"), Type:=xlFillDefault 

Set cell = ws3.Range("A1:A1") 
ws3.Select 
cell.FormulaR1C1 = "=Sheet1!RC" 
cell.Select 
Selection.AutoFill Destination:=Range("A:A"), Type:=xlFillDefault 

End Sub 

행운을 빕니다.

+0

원본 시트의 행이나 열이 "미러링 된"시트에 나타나지 않으면 자동 채우기가 제대로 작동하지 않습니다. –