
여러 셀의 데이터를 컴파일하는 스프레드시트를 만들려고 합니다.
기본적으로 데이터 입력 시 수식을 삭제하지 않고 사용자가 입력한 것과 동일한 정보를 셀 A1
에 반영 Sheet1
하고 싶습니다 .Sheet2
사용자가 이러한 셀에 데이터를 입력할 수 있어야 하지만 =Sheet2!A1
을 사용하여 =Sheet1!A1
순환 참조를 만들고 사용자가 수식을 삭제할 수 있도록 남겨둡니다.
누구든지 이 문제를 해결하는 방법을 추천할 수 있습니까?
답변1
수식을 유지하면서 수식이 포함된 셀에 데이터를 입력할 수 없습니다.
해결책은 사용자가 다른 셀에 데이터를 입력한 다음 A1
두 시트 모두에서 해당 셀을 참조하도록 하는 것입니다.
답변2
매크로 없이는 할 수 없습니다. 이 코드는 작동합니다:
Private Sub Worksheet_Change(ByVal Target As Range)
therow = 1
thecolumn = 1
Dim wks As Worksheet
cellrow = Target.Row
cellcolumn = Target.Column
If (cellrow = therow And cellcolumn = thecolumn) Then
Set wks = ThisWorkbook.Worksheets("Sheet2")
wks.Cells(cellrow, cellcolumn) = Target.Value
End If
End Sub
ALT+ 로 매크로를 열고 F11두 번 클릭하세요.시트1왼쪽에 코드를 붙여넣고 오른쪽에 코드를 붙여넣으세요. 이 코드는 에서 실행되므로 변경 사항을 에 Sheet 1
복사합니다 .Sheet1 A1
Sheet2 A1
워크시트에 변경 사항이 있을 때마다 이 매크로가 실행됩니다. 변경된 셀이 행 1과 열 1(셀 A1)에 있는지 확인한 다음 동일한 셀의 값을 복사합니다.시트2.
변경사항을 확인하고 싶다면시트2에게시트1또한 다음과 같습니다.
- 더블 클릭시트2왼쪽에.
- 오른쪽에 코드를 붙여넣으세요.
Set wks = ThisWorkbook.Worksheets("Sheet2")
새 목적지를 나타내도록 행을 변경하십시오Set wks = ThisWorkbook.Worksheets("Sheet1")
.
현재 이 매크로는 변수를 사용합니다.행그리고기둥값을 다른 워크시트에 복사할지 결정합니다. 처음에는 줄에서 1로 설정되어 therow=1
있으며 thecolumn=1
이는 우리가 셀에 관심이 있다는 것을 의미합니다.A1. 그리고 수정된 셀이 행의 값과 일치하는지 확인합니다 If (cellrow = therow And cellcolumn = thecolumn) Then
.
값을 수정하여 필요에 맞게 사용자 정의할 수 있으며, 전체 열이나 행을 확인할 수도 있습니다. 예를 들면 다음과 같습니다.
확인 라인을 다음으로 변경하면 어떤 행이든 If (cellcolumn = thecolumn) Then
변수와 동일한 값을 갖는 열에 발생한 변경 사항이 복사됩니다 .thecolumn
다른 예:
확인 라인을 다음으로 변경하면 어떤 행에 관계없이 해당 If (cellcolumn > thecolumn) Then
값보다 큰 모든 열에서 발생하는 변경 사항이 복사됩니다 .thecolumn