我如何每天引用不同的Excel工作表?

时间:2017-09-11 16:40:17

标签: excel vba excel-vba

我有一张带有365张的excel工作簿,每天一张。 员工在相应的选项卡上添加当天的信息并保存并关闭它。

我想创建一个名为“当天”的新工作表,它将显示最近编辑过的工作表。

这些表格按日期命名,因此可以拨打' 9.11.2017'或者它可以调用最近编辑的表格。

处理此问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:0)

不确定完全理解您的问题,但也许您可以考虑在" Workbook_SheetChange"中编写代码。事件在" ThisWorkbook"工作簿文件的VBA模块,以便您可以跟踪用户的操作。示例代码:

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

如果您需要跟踪用户的操作,即上次编辑的工作表:工作表名称可以存储在全局变量中,每次引发此事件时都会被覆盖。 通过使用另一个工作簿事件,您可以通过将其写入某处(在" log"工作表中或在另一个工作簿中)来存储最新的工作表名称

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

也许它不是100%可靠的代码,但它可以工作。

问候。

答案 1 :(得分: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

答案 2 :(得分:-3)

我认为根据工作表标签和系统当天创建一个C#可执行文件,将open an excel电子表格发送到特定工作表是非常简单的。

困难的部分是手写365张名字。我想你可以用名字写出表格,然后用类似的算法读出它。