我正在尝试找到一种方法,将Excel工作表名称用作我编写的宏中的变量。每个月我都会处理一张以2张发给我的工作簿。宏的一部分使用“打开文件”界面导航到该文件夹并打开该文件。
文件中的第一个工作表称为“报告”,它是静态的。我所做的就是删除它(因为我不需要它)。
第二张可以被称为任何东西,这是我需要运行宏的工作表。有没有办法说:
shtName = %whatever_the_sheetname_is_called%
然后在整个宏中使用'shtName'变量?我想将这个新文件名作为变量也会有所帮助。
答案 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]