2017-01-04 7 views
-1

アクティブシート名を覚えておき、アクティブシートを削除し、テンプレートとして使用する別のシートをコピーして、保存した名前で新しいシートの名前を変更したい削除されたシートから削除します。VBA新しいシートに使用する現在のシート名を保存する

これは、私はちょうどそれが以下のコード試し保存されたシート名を

Sub Reset_Work_Order() 

Application.DisplayAlerts = False 
ActiveWindow.SelectedSheets.Delete 


Dim NewSht    As Worksheet 

Master_Work_Order.Copy After:=ActiveSheet 
Set NewSht = ActiveSheet 

End Sub 
+0

を](https://support.office.com/en-gb/article/Automate-tasks-with-the-Macro-Recorder-974ef220-f716-4e01-b015-3ea70e64937b?ui=en-US&rs=en-GB&ad= GB&fromAR = 1)。レコーダーをオンにして、手動でアクションを実行してから、Excelがあなたのために書いたVBAを確認します。このテクニックは、あなたが望むものが分かっているが、それをどうやって行うのか分からないときには素晴らしいことです。 –

答えて

2

をシートの名前を変更持っている必要があります使用してコードイムです:あなたは、[Excelのマクロレコーダを使用してみました

Option Explicit 

Sub Reset_Work_Order() 

Dim ShtName As String 
Dim Master_Work_Order As Worksheet 
Application.DisplayAlerts = False 

Set Master_Work_Order = Worksheets("YourMasterSheetsName") 

' keep name of ActiveSheet 
ShtName = ActiveSheet.Name 
ActiveSheet.Delete 

Dim NewSht    As Worksheet 

Master_Work_Order.Copy After:=ActiveSheet 

Set NewSht = ActiveSheet 
' set new copied sheet name to Previous ActiveSheet's name 
NewSht.Name = ShtName 

End Sub 
+0

ここでシートコードを使用するのは無理でしょうか?代わりにSet Master_Work_Order = Worksheets( "YourMasterSheetsName") '? – luke

+0

あなたは 'Sheet.Index'を意味していますか? 「ワークシート(2)」のように?ワークブックの2番目の位置にあるシート? –

+0

申し訳ありませんが、代わりにシートCodeName。 – luke

関連する問題