2017-09-11 41 views
-1

我有一張365頁的excel工作簿,每天一張。 員工在相應的選項卡上添加當天的信息並保存並關閉它。我怎樣才能每天參考不同的Excel表格?

我想創建一個名爲當天新的工作表將顯示最近編輯的表。

的紙張通過日期命名所以它可能只是稱之爲「2017年9月11日」或者可以致電最近編輯的表。

什麼是處理的最佳方式?

+0

你所說的「顯示最近編輯單」是什麼意思? – theGleep

+0

保存Excel工作簿時,它會記住活動工作簿的內容......所以目前尚不清楚爲什麼您甚至需要做任何事情來實現這一點。即使你這樣做了,激活今天的工作表也不一定是*最後編輯的工作表*。你的問題還不清楚,背後的動機也不清楚。 –

+0

工作表顯示在Confluence的非服務器實例上,無論如何顯示excel文件的第一個工作表。 如果我可以使第一張表單反映當前日期表或最近編輯過的表單,這將工作得最好。 – astanix

回答

-3

我認爲這將是相當簡單的創建,將open an excel電子表格到一個特定的基於紙的紙標籤和系統當天在C#可執行文件。

困難的部分是手寫365表名稱。我想你可以用名字寫出表格,然後用類似的算法讀取它。

+0

C#與此有什麼關係?處理工作簿中的Workbook_Open * *和激活正確的工作表更爲直接。涉及其他任何東西都是過分的。 –

0

不確定要完全理解您的問題,但也許您可以考慮在工作簿文件的「ThisWorkbook」VBA模塊的「Workbook_SheetChange」事件中編寫代碼,以便您可以跟蹤用戶的操作。示例代碼:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
    Debug.Print Sh.Name & " - "; Target.Address & " - "; Target.Value 
End Sub 

這是,如果你需要跟蹤用戶的行爲,即最後編輯的表:表名稱可以存儲在一個全局變量,引發此事件每次覆蓋。 使用另一個工作簿時,您可以通過地方寫它存儲的最新表名稱(在「日誌」工作表,或onother工作簿)

Private Sub Workbook_BeforeClose(Cancel As Boolean) 
'... 
End Sub 

也許這是不是100%可靠的代碼,但它可能工作。

關於。

0
Sub CD() 
yest = Day(Date) - 1 
m = Month(Date) 
y = Year(Date) 
sheetname = m & "." & yest & "." & y 
Range("A1").Value = Worksheets(sheetname).Range("A1") 
Range("A3").Value = Worksheets(sheetname).Range("A3") 
Range("B3").Value = Worksheets(sheetname).Range("B3") 
Range("C3").Value = Worksheets(sheetname).Range("C3") 
Range("D3").Value = Worksheets(sheetname).Range("D3") 
Range("E3").Value = Worksheets(sheetname).Range("E3") 
Range("F3").Value = Worksheets(sheetname).Range("F3") 
Range("G3").Value = Worksheets(sheetname).Range("G3") 
Range("H3").Value = Worksheets(sheetname).Range("H3") 
Range("I3").Value = Worksheets(sheetname).Range("I3") 
Range("J3").Value = Worksheets(sheetname).Range("J3") 
End Sub