复制工作表并将其放在所有其他工作表之后,并将其重命名为同一工作簿中另一个工作表中的单元格引用

时间:2013-10-19 13:31:28

标签: excel excel-vba vba

我是这个网站的新手,我有一个工作簿,(成本计算器),在工作簿中,我有很多工作表,但我关注的工作表被命名为(Tour_Fare_& _Analysis)和(RoutePlanner)。

我想要做的是复制路线规划器并将其放在仅包含值的所有其他工作表之后(没有原始公式),并使用工作表中的单元格(“G2”)重命名此新副本(Tour_Fare_& _Analysis)。

在我的搜索中,我发现了一个最初起作用的代码,但后来当我尝试更改代码只制作复制值时,我不知道出了什么问题,甚至原始代码都回复了错误消息。我正在使用的代码如下所示,我也在代码后面添加了错误ms。

Dim Test As Worksheet
Sheets("RoutePlanner").Copy After:=Sheets(Sheets.Count)
Set Test = ActiveSheet
ActiveSheet.Name = Sheets("Costing Summery").Range("G2").Value

错误消息: 运行时错误'1004':

无法将工作表重命名为与另一个工作表,引用的对象库或Visual Basic引用的工作簿相同的名称。

请任何人都可以帮我解决这个问题,我将非常感谢任何帮助,因为我已经将谷歌服务器上下翻找试图找到我得到的错误消息的答案。

1 个答案:

答案 0 :(得分:0)

问题已经有一段时间了,但这里是我如何解决类似的问题。我允许它使用相同的名称,但在名称中添加序列号。

(我也养成了先插入或顶部插入东西的习惯,因为我后来需要查看一年前创建的内容,节省了一切到底/最底层的时间。)< / p>

Sub OrderConfirmation()

Dim newsheet As Worksheet
Dim i As Integer
Dim OCNO As String

OCNO = "OC #" & ' adding the order number from a different sheet/row that Im working with

Worksheets("Template").Copy before:=Worksheets(1)
Set newsheet = ActiveSheet

On Error Resume Next
newsheet.Name = OCNO
    If Err.Number = "1004" Then
    For i = 1 To 10
    On Error Resume Next
    newsheet.Name = OCNO & "(" & i & ")"
    If Not Err.Number = "1004" Then i = 10

Next i
End If

End Sub