2012-01-07 69 views
1

在我正在进行的项目中,我要完成工作,我想确保接管我工作的人员将获得赢得“我离开后不会休息。这个项目是一个持续的追踪器,每年保持每年一次,每个工作表使用的工作表(几个不同的感兴趣的项目)按工作表名称逐年分隔。例如,主表格简单地称为“YYYY”,其中“YYYY”是当前年份。其他工作表称为“DTDYYYY”,“MTDYYYY”,“YTDYYYY”,其中YYYY是当前年份。来到2013年,如果我使用的小VBA能够采用当前的YYYY并自动找到合适的工作表,我希望它。excel VBA如何从工作表名称中确定工作表索引

我知道我可以使用SheetIDX约定来参考工作表。我知道我可以使用表格(NAME)方法。不过,我不确定如何最好地完成我的目标。

+2

您的要求不明确。如果你想找到一个你知道被称为'2013'的工作表,那么困难在哪里?你的意思是你想创建一个工作表吗?目前会发生什么? – Fionnuala 2012-01-07 09:19:11

+1

我需要能够动态使用当前存在的基于当年的工作表。困难是我不知道该怎么做。 – Jim 2012-01-07 18:04:49

回答

6

您需要一个名称字符串。

With ThisWorkbook 
    .Sheets(CStr(Year(Date))).Select 
End With 
6
Application.Sheets("Sheet1").Index 
Application.Sheets(1).Name 

希望这是你需要的。

对不起,我没有看到关于今年的最后一部分。也许这个?

Application.Sheets(Year(Date())).Activate 
+0

这是我正在寻找的正确方向。但是,使用这些方法时,会出现错误'下标超出范围(错误#9)'。我也尝试将年份(日期)分配给一个变量并使用它。我犯了同样的错误。我目前正在使用Excel 2007. TIA! – Jim 2012-01-07 18:06:58