如何查看正在运行VBA宏的工作表或工作簿的名称?要用作条件语句,(如果工作簿/工作表名称="",则......)。
答案 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 property。 Address 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)