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

Mr_*_*mas 15 excel vba excel-vba

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

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

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

shtName = %whatever_the_sheetname_is_called%
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*keD 35

在您将使用的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
Run Code Online (Sandbox Code Playgroud)

工作簿中的第一个工作表可以引用

ActiveWorkbook.Worksheets(1)
Run Code Online (Sandbox Code Playgroud)

删除[报告]选项卡后,您将使用

ActiveWorkbook.Worksheets("Report").Delete
shtName = ActiveWorkbook.Worksheets(1).Name
Run Code Online (Sandbox Code Playgroud)

为了"稍后在那张纸上工作"你可以创建一个范围对象

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(shtName).[A1]
Run Code Online (Sandbox Code Playgroud)

并继续努力MySheet(rowNum, colNum)......

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

Dim MySheet as Range
MySheet = ActiveWorkbook.Worksheets(1).[A1]
Run Code Online (Sandbox Code Playgroud)