VBA检查excel工作表名称

时间:2015-06-03 16:26:43

标签: excel vba worksheet

如何查看正在运行VBA宏的工作表或工作簿的名称?要用作条件语句,(如果工作簿/工作表名称="",则......)。

2 个答案:

答案 0 :(得分:1)

如果工作表是屏幕上显示的工作表,您可以使用以下内容:

If ActiveSheet.Name = "Name of Sheet" then
    *Code here
End If

答案 1 :(得分:1)

运行宏时,您应该远离 not 明确指定工作表(以及工作簿,如果打开了多个工作簿)。使用With...End With statement可以轻松指定工作表。属于工作表的每个范围或单元格引用只需要一个句点(也称为.完全停止)作为前缀,以将工作表指定为父项。只有当您想要引用另一个工作表时才需要指定不同的父工作表;例如从一个工作表复制到另一个工作表。使用变量 Set 轻松处理工作表对象。

示例:

dim ws2 as worksheet
set ws2 = Sheets("Sheet2")
with Sheets("Sheet1")
    .range("A2:D4).copy destination:=ws2.range("A2")
    'more operations on Sheet1 here using .Range and .Cells
end with

话虽如此,如果您想确定哪个工作表中的Range("A1")等单元格引用属于代码中的某个点,请获取任何单元格引用的Range .Parent property,然后您可以确定父工作表& #39; s .Name propertyAddress property外部参数也可用于使用工作簿和工作表提取字符串单元格地址,但这需要一些文本操作来确定工作表名称。

示例:

debug.print Range("A1").parent.name
debug.print Cells(1, 1).parent.name
debug.print Range("A1").address(0, 0, external:=True)
debug.print Cells(1, 1).address(0, 0, external:=True)