2011-08-24 204 views
11

我试图找到一种方法将Excel工作表名称用作我编写的宏中的变量。每个月我都会处理一张工作簿,这张工作簿是以两张表格发给我的。部分宏使用“打开文件”界面导航到文件夹并打开文件。获取Excel工作表名称并将其作为宏中的变量使用

该文件中的第一张纸称为'报告',它是静态的。我所做的就是删除它(因为我不需要它)。

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

shtName = %whatever_the_sheetname_is_called% 

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

回答

27
在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] 
+0

+1你的答案是非常明确的 – JMax

+0

同意。这正是我正在寻找的。 –

相关问题