0

私はこのサイトを初めて使用します。ワークブック (Costing-Calculator) があり、ワークブックには多くのワークシートがありますが、関心のあるシートの名前は (Tour_Fare_&_Analysis) および (RoutePlanner) です。

私がやりたいことは、Route Planner をコピーし、他のすべてのワークシートの後に値のみ (元の数式なし) を配置し、ワークシート (Tour_Fare_&_Analysis) のセル ("G2") からの値でこの新しいコピーの名前を変更することです。

私の検索では、最初は機能するコードを見つけましたが、後でコードを変更してコピー値のみを作成しようとすると、何が問題なのかわかりません。元のコードでさえエラー メッセージが返されます。私が使用しているコードは以下の通りで、コードの後に​​エラー 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 によって参照されているブックと同じ名前に変更することはできません。

誰でもこの問題を解決するのを手伝ってくれませんか。私が得ているエラーメッセージへの答えを見つけるためにグーグル検索を逆さまにして試してみたので、本当に助けていただければ幸いです。

4

1 に答える 1

0

質問からしばらく経ちましたが、同様の問題を解決した方法を次に示します。同じ名前を使用できますが、名前にシーケンス番号を追加します。

(また、1 年前に作成したものを見る必要がほとんどないため、最初または一番上に何かを挿入する習慣があり、すべての最後/一番下に移動する時間を節約できます。)

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
于 2014-02-11T07:11:04.810 に答える