응용 프로그램을 다시 열 필요 없이 편집 시 자동으로 매크로를 실행할 수 있습니까?

응용 프로그램을 다시 열 필요 없이 편집 시 자동으로 매크로를 실행할 수 있습니까?

두 개의 스프레드시트가 있는데, 사람이 첫 번째 스프레드시트를 변경하면 두 번째 스프레드시트가 업데이트되기를 원합니다. 간단한 if 문으로 이 작업을 수행할 수 있지만 첫 번째 시트에서 작업하는 사람이 시트를 닫았다가 다시 열 때까지 업데이트되지 않습니다.

이 작업을 자동으로 수행할 수 있습니까?

답변1

삭제된 답변의 댓글을 보면 업데이트할 스프레드시트가 다른 컴퓨터에 있다는 것을 알 수 있습니다. 내 생각에는 소스 스프레드시트의 수정 날짜를 정기적으로 확인하고 필요한 경우 자체 업데이트하는 원격 스프레드시트용 매크로를 작성하지 않는 한 이 업데이트는 불가능합니다. 이 경우 문서는 공용 네트워크 공유에 있어야 하며 작업이 쉽지 않습니다.

모든 사용자가 인터넷에 액세스할 수 있는 경우 다른 옵션은 온라인 스프레드시트를 사용하여 단지하나스프레드시트. 이러한 목적을 달성할 수 있는 다양한 온라인 제품이 있으며 무료 제품도 있습니다.

귀하는 귀하의 환경과 그 환경에서 무엇을 원하거나 가능한지에 관한 자세한 정보를 우리에게 제공해야 합니다.

답변2

두 번째 스프레드시트를 업데이트하는 첫 번째 스프레드시트에 worksheet_change 매크로를 설정할 수 있습니다. 코드는 다음과 같습니다.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim wbk2 As Workbook, wbk1 As Workbook, sht1 As Worksheet, sht2 As Worksheet

Set wbk1 = ActiveWorkbook
Set sht1 = ActiveSheet

on error resume next 
set wkb2=workbooks("myfile.xlsx")
if err<>0 then
    err.clear
    Set wbk2 = Workbooks.Open("\\remotecomputer\folder\myfile.xlsx")
end if
on error goto 0

Set sht2 = wbk2.Sheets("mySheet2")

sht2.Cells(1, 1) = "I have updated range " & Target.Address & " in sheet " & sht1.Name & " to value " & Target.Value

wbk2.Close True

End Sub

관련 정보