获取Excel工作表名称并在宏中用作变量

时间:2011-08-24 13:43:26

标签: excel-vba vba excel

我正在尝试找到一种方法,将Excel工作表名称用作我编写的宏中的变量。每个月我都会处理一张以2张发给我的工作簿。宏的一部分使用“打开文件”界面导航到该文件夹​​并打开该文件。

文件中的第一个工作表称为“报告”,它是静态的。我所做的就是删除它(因为我不需要它)。

第二张可以被称为任何东西,这是我需要运行宏的工作表。有没有办法说:

shtName = %whatever_the_sheetname_is_called%

然后在整个宏中使用'shtName'变量?我想将这个新文件名作为变量也会有所帮助。

1 个答案:

答案 0 :(得分:34)

在Visual Basic宏中,您将使用

pName = ActiveWorkbook.Path      ' the path of the currently active file
wbName = ActiveWorkbook.Name     ' the file name of the currently active file
shtName = ActiveSheet.Name       ' the name of the currently selected worksheet

可以引用工作簿中的第一个工作表
ActiveWorkbook.Worksheets(1)

所以删除[报告]标签后你会使用

ActiveWorkbook.Worksheets("Report").Delete
shtName = ActiveWorkbook.Worksheets(1).Name

以“稍后在该工作表上工作”您可以创建一个范围对象,如

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(shtName).[A1]

继续处理MySheet(rowNum, colNum)等......

快捷方式创建范围对象而不定义shtName:

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(1).[A1]