経験則なので当てはまるか不明ですが、、
Excel97だと下記のようにシートにActiveXコントロールのCommandButtonを置いてそこから実行している場合失敗します。
Private Sub CommandButton1_Click()
Worksheets(1).Copy
End Sub
ヘルプの「シートで ActiveX コントロールを使用する」によれば「ActiveX コントロールをアクティブにすると、使用不能になる Visual Basic のメソッドやプロパティがあります。たとえば、Sort メソッドは、コントロールをアクティブにすると使用できません。」とあり、回避策として下記のようにコントロールからフォーカスを奪ってやると成功します。
Private Sub CommandButton1_Click()
ActiveCell.Activate
Worksheets(1).Copy
End Sub
また、Excel97だと下記のようにシートを最初のコピー元からではなく、コピーからコピーを作るやり方をして同一ブックに納めていくとそのうち失敗します。
Sub Test() '失敗する
For i = 0 To 50
ActiveSheet.Copy after:=ActiveSheet
Next i
End Sub
これはワークシートのオブジェクト名が「Sheet1111111111」のようになってしまうのが原因で絶えず最初のシートからコピーをすると回避出来ます。
Sub Test1() '成功する
For i = 0 To 50
Worksheets(1).Copy after:=ActiveSheet
Next i
End Sub
参考になれば。