Excel에서 값이 변경되면 표에 새 값을 추가합니다. [닫힘]


0

아마도 VBA 스크립트를 찾고 있습니다. 기본적으로 상황은 다음과 같습니다. API에서 값을 자동으로 가져 오는 시트가 있으므로 시트를 업데이트 할 때마다 값이 변경됩니다. 내가 원하는 것은 특정 셀의 새 값을 다른 시트의 테이블에 추가하는 것입니다. 따라서 값이 변경 될 때마다 새 값이 특정 열의 첫 번째 빈 행에 추가됩니다. 나는이 가치들이 시간이 지남에 따라 발전하는 방법을 따르기 위해 역사적 데이터를 추적하고 싶다. 좋은 보너스는 특정 업데이트의 정확한 시간을 같은 행의 다른 열에 추가하는 것이지만 수동으로도 할 수 있습니다.

답변:


1

이 매크로를 사용하여 특정 데이터 범위의 변경 사항을 추적 할 수 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:B100")) Is Nothing Then
Call Master
End If
End Sub

노트 :

  • 이 코드가 실행됩니다. 매크로 (마스터) 언제든지 범위에서 셀 값이 변경됩니다.

아래에 VBA 코드를 표준 모듈로 입력하십시오.

  • 이 코드는 범위의 모든 새 값 / 변경 값을 복사합니다. A1:B100 새로운 장으로 MasterSheet 오래된 기록을 쓰지 않고.

    Sub Master()
    
    Dim sourceSheet As Worksheet
    Dim sourceRange As Range
    Dim sourceRows As Integer
    
    Set sourceSheet = Worksheets("Sheet1")
    
    sourceRows = WorksheetFunction.CountA(sourceSheet.Range("A:A"))
    
    Set sourceRange = sourceSheet.Range("A1:B" & sourceRows)
    
    Dim targetSheet As Worksheet
    Dim targetRange As Range
    Dim targetRows As Integer
    
    Set targetSheet = Worksheets("MasterSheet")
    
    targetRows = WorksheetFunction.CountA(targetSheet.Range("A:A"))
    
    Set targetRange = targetSheet.Range("A" & targetRows + 1 & ":B" & targetRows + 1 + sourceRows)
    
    sourceRange.Copy Destination:=targetRange
    
    End Sub
    

노트 :

  • 향상된 데이터 & amp; 파일 관리 저는 두 개의 MACRO를 사용했습니다.
  • 매크로는 COUNTA 어떻게 행이 사용중인지 알 수 있습니다.
  • 원본 시트와 마스터에 열 머리글이 있으면 복제됩니다. 그래서 당신은 sourceRange ~에서 시작하다 A2.

필요에 따라 셀 참조와 시트 이름을 조정하십시오.


이것은 옳은 것처럼 보이지만 여전히 문제가 있습니다. 정말 원래 게시물에서 완전히 분명하지 않아서 미안해. 내가 수집 한 것부터 해당 범위의 변경된 값이 마스터 시트의 열 A 끝에 추가됩니다. 그러나 그것은 내가 찾고있는 것이 아닙니다. 셀 A2가 값 x이고 B2가 값 y라고 가정 해 봅시다. 값 x가 변경되면이를 다른 시트의 A 열에 추가하려고합니다. A1은 "값 x"표제이고 그 열은 값 x의 이전 값만 포함합니다. 원본 시트에서 값 y를 변경하면 두 번째 시트의 열 B로 이동합니다.
Rasmus Tieaho

@RasmusTieaho, OP를 기반으로 한 솔루션을 제안했습니다. 소스 코드와 변경 사항을 소스 코드 및 변경 사항을 모두 관찰 한 후에 제안하고 싶습니다. 최근 요구 사항에 따라 수정할 수 있으므로 사용하고 수행하십시오. 필수 수정 ☺
Rajesh S

@ 라스무스 누군가가 이미 시간과 노력에 응답 한 후에는 질문을 변경할 수 없습니다. 원래의 서면 질문에 대한 답변이라고 생각하시면 답변 해주십시오. 실제 문제를 잘 반영하는 새로운 질문을 게시 할 수 있습니다.
Tom Brunberg

@TomBrunberg, 당신은 좋은 지적을 제기했습니다. 게시하는 동안 OP는 매우 조심해야하며 자주 변경하면 답변자를 벗어납니다. ☺
Rajesh S

좋아,이 사실을 알지 못했다.
Rasmus Tieaho
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.