「Sheet1」および/または「Sheet2」があるかどうかを確認するために、プログラムにワークブックを検索させようとしています。ある場合は、「Results」と「DataEntries」に名前を変更したいと思います (以下のコードを参照)。シートが以前の実行で既に名前が付けられている場合) 新しい名前でコードを続行します。[ユーザーが初めてプログラムを実行したとき、ワークブックには既定でシート 1 とシート 2 が含まれている場合があります。私のプログラムは以前の実行を保存するため、ユーザーが以前にプログラムを実行したことがある場合、シート 1 とシート 2 には既に新しい正しい名前が付けられている可能性があります)。
私のコードの最初の行は次のとおりです。
Dim ws As Excel.Worksheet
For Each ws In ActiveWorkbook.Sheets
If ws.Name = Sheet1 Then
Sheet1.Name = Results
ElseIf ws.Name = Sheet2 Then
Sheet2.Name = DataEntries
End If
Exit For
Next ws
Results.Cells.Clear
DataEntries.Cells.Clear
プログラムを実行しようとすると、この正確な順序で次のエラーが表示されます。
1) オブジェクトはこのプロパティまたはメソッドをサポートしていません
2) オブジェクト '_Worksheet' のメソッド 'Name' が失敗しました
3) 必要なオブジェクト
4) 必要なオブジェクト
その後、プログラムは引き続き実行されます (ただし、必要なアクションは実行されません)。単純な構文の混乱に違いありませんが、この問題を解決できません。誰かが私を正しい方向に向けることができますか? 必要に応じて残りのコードを投稿しますが、必要ない場合もあります。