首页 > 解决方案 > 如何定义一个变量等于最后一张表的名称(VBA)?

问题描述

我有一个 Excel 文件,其中至少包含两张表:摘要表 (Sheet1)、模板表 (Sheet2) 和可变数量的表。我有一个小宏,它将 Sheet2 复制到工作表的最后,并将新工作表重命名为我在输入框中键入的任何内容。

我还希望宏将 Sheet1 中的 A1 作为对新工作表的 A1 中的任何值的引用(“最后一张工作表”)。但我的问题是定义一个等于新工作表名称的变量。

我试过使用 Sheets(Sheets.Count) 但没有运气。

Sheets("Sheet1").Range("A1").Formula = "='Sheets(Sheets.Count)'!A1"

我希望公式 ='NameOfTheLastSheet'!A1 出现在 Sheet1 的 A1 中。相反,Excel 希望我打开一个文件来更新 Sheet(Sheets.Count) 的值。

(我是 VBA 的菜鸟,但如果我指向正确的方向,我不介意研究某些领域。)

标签: excelvba

解决方案


你很接近,只是语法有一些问题。

Sheets("Sheet1").Range("A1").Formula = "='"& Sheets(Sheets.Count).Name & "'!A1"

因为Sheets(Sheets.Count).Name返回工作表名称是 vba 语法,所以它需要在实际公式字符串的其余部分之外连接。


推荐阅读