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

时间:2016-11-18 17:58:07

标签: excel vba excel-vba macros

我刚刚开始使用VBA for Excel,我遇到了一个我无法找到解决方案的问题。我想创建一个宏来制作工作表的副本,并将副本重命名为单元格B8中指定的内容。现在,Cell B8包含一个字符串和一个值(基于公式),如下所示。

细胞B8的含量

enter image description here

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

Sub NewFunction()

Dim counter As Integer

Sheets(1).Copy After:=Sheets(1)

ActiveSheet.name = Sheets(1).Range("B8").CStr

End Sub

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

其次,您正在更改错误的工作表上的名称。您添加了一个新工作表,然后引用旧工作表。

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

答案 1 :(得分:0)

你几乎就在那里

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

,其中

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

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

仍然存在可能重复名称的问题,如果您搜索

,可以通过此处可以找到的特定功能处理