我有兩個電子表格,我希望在有人更改第一個電子表格後更新第二個電子表格。我可以用一個簡單的 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