2017-12-29 2 views
1

다른 셀에서 값을 가져 오는 함수를 사용하는 셀에서 값을 복사하는 데 문제가 있습니다. A1, A3 = A1에 값을 삽입하고 A3 값이 변경되면 변경 사항이 자동으로 H 열로 전송되어야합니다. 문제는 A1에 값을 입력하면 A3가 업데이트되지만 값이 전송되지 않습니다. , 내가 A3에 값을 입력하면 H 열이 업데이트됩니다.Excel VBA ByVal 대상 범위 범위에서 대상 워크 시트를 업데이트하지 않습니다.

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Target.Address = Range("A3").Address Then 

    ' Get the last row on our destination sheet (using Sheet2, col A here)... 
    Dim intLastRow As Long 
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row 

    ' Add our value to the next row... 
    Sheet1.Cells(intLastRow + 1, "H") = Target.Value 

End If 

End Sub 

이미지를 Screenshot of sheet

를 참조하시기 바랍니다 또한 다음 코드를 시도했습니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
Private Sub Worksheet_Change(ByVal Target As Range) 

위 항목 중 아무 것도 변경 이벤트를 트리거 한 것으로 보이지 않습니다. A3 값 변경으로 인한 값 변경에는 값 A1을 사용할 수 없습니다. 심지어 복사본을 실행하고 Trigger A3에 매크로를 붙여 넣을 생각을했습니다. 그러나 가치 변화 코드가 실제로 작동하기를 바랄 것입니다. 저는 A3에서 변화 가치를 얻을 수 있습니다. 미리 감사드립니다.

답변

0

Worksheet_Change 셀이 해당 수식을 다시 계산할 때 실행되지 않습니다. 셀의 Value이 지정되면 실행됩니다.

A1에 값을 할당하는 경우 처리기에서 Range("A1").Address을 확인해야합니다.

여러 개의 Calculate 이벤트가 있지만 개별 시트가 아니라 전체 시트에 대해 계산이 완료되면 실행됩니다.

+0

안녕하세요 GSerg. A1은 웹을 통해 가져온 데이터입니다. 비록 내가 A1에서 그것을 실행 했더라도 그것은 또한 이벤트를 트리거하지 않습니다. –

+0

매크로로 잡아 당긴다면, 수동으로 이벤트를 사용하지 않는 한, 이벤트를 트리거 할 것입니다. 웹 쿼리로 가져온 경우 쿼리 테이블의 새로 고침 이벤트를 처리하려고합니다. – GSerg

0

Change을 처리하는 동안 이벤트를 사용하지 않도록 설정하십시오. 코드가 반복적으로 실행될 수 있습니다. this link를 참조

Private Sub Worksheet_Change(ByVal Target As Range) 

Application.EnableEvents = False 

If Target.Address = Range("A3").Address Then 

    ' Get the last row on our destination sheet (using Sheet2, col A here)... 
    Dim intLastRow As Long 
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row 

    ' Add our value to the next row... 
    Sheet1.Cells(intLastRow + 1, "H") = Target.Value 

End If 

Application.EnableEvents = True 

End Sub 
0

다음 스크립트는 시트의 계산이 더 많은 정보를 원하시면,이 완료 될 때마다 실행되고 그 다음 A3의 값으로 Colunm H을 업데이트합니다.

정확하게 도움이 될만한 것이지만 올바른 방향으로 나를 인도 할 수 있는지 확실하지 않습니다. 또한 새 A3 값이 마지막 Column H 값과 같은지 확인한 다음 값 삽입을 무시할 수 있는지 확인하십시오.

Private Sub Worksheet_calculate() 

    ' Get the last row on our destination sheet (using Sheet2, col A here)... 
    Dim intLastRow As Long 
    intLastRow = Sheet1.Cells(Sheet2.Rows.Count, "H").End(xlUp).Row 

    ' Add our value to the next row... 
    Sheet1.Cells(intLastRow + 1, "H") = Sheet1.Range("A3").Value 

End Sub 
관련 문제