包含文本和公式值的Excel单元格的VBA Handeling

我刚开始使用VBA for Excel,遇到了一个我找不到解决scheme的问题。 我想要制作一个macros,使一个工作表的副本,并重命名为单元格B8中指定的副本。 现在,单元格B8包含一个string和一个值(基于公式),如下所示。

单元格B8的内容

在这里输入图像说明

如何让VBA使用名称(string和数字)作为新表的名称?

Sub NewFunction() Dim counter As Integer Sheets(1).Copy After:=Sheets(1) ActiveSheet.name = Sheets(1).Range("B8").CStr End Sub 

提前致谢!

例如,您不能在表格名称中使用“/”。 它可能会出错,但Excel将忽略它。

其次,你正在改变错误的名单。 您添加了一个新工作表,然后提到旧工作表。

第三,不需要使用.CStr作为单元格的值是你想要的,既然这是默认的属性,也不需要使用.Value。

你几乎在那里

 Sheets(1).Copy After:=Sheets(1) ActiveSheet.name = Replace(Replace(Replace(Replace(Range("B8"), "\", "-"), "/", "-"), "?", "-"), "*", "-") 

哪里

  • Worksheet对象的Copy()方法之后,新的工作表变成活动的

  • VBA Replace()方法chain是为了确保你没有使用新工作表名称的禁止字符

仍然存在可能重复的名称的问题,可以通过一个特定的函数来处理,如果您search,可以在这里find