1

私の問題に対する答えを見つけるためにこのサイト全体を検索しましたが、関連する解決策のほとんどは、はるかに複雑な問題に対するものです。これが私がしなければならなかったことです。Excel 2007 で簡単なフォームを作成しました。フォームの下部にボタンを追加して、ユーザーがボタンをクリックし、そのワークシートを同じ Excel ドキュメント内の新しいワークシートにコピーできる機能を探しています。基本的に、アクティブなワークシートを複製するだけです。

マクロを使用して実行しようとしましたが、期待どおりの結果が得られませんでした。同僚のほとんどはまだ Excel 2003 を使用しているため、古いバージョンの Excel でマクロが機能するかどうかはわかりません。私は VBA をまったく知らないので、皆さんからの助けを求めてここに来ました。

要約すると。

  1. アクティブなワークシートの下部に単純なフォームとコマンド ボタンがある 1 枚の Excel ドキュメント
  2. そのワークシートを同じ Excel ドキュメント内の新しいワークシートに「コピーして貼り付ける」コマンド ボタン
  3. 可能であれば、Excel 2003 と 2007 の両方で機能するソリューション。そうでない場合は、2007 年です。

初心者のExcelユーザーを喜んで助けてくれる人に、前もって感謝します.

4

4 に答える 4

1

ここでボタンを追加する方法を知っていると仮定すると、アクティブなワークシートを複製するための簡単なコード行があります。

Sub Button1_Click()
    ActiveSheet.Copy after:=ActiveSheet
End Sub
于 2009-11-16T22:40:56.120 に答える
0

このメソッドは、Excel 2003 と Excel 2007 の両方で機能することがわかります。フォームに、次のメソッドを追加します。

Sub CopySheet(WorkSheetName as String)

    Dim WrkSht As Worksheet
    Set WrkSht = Sheets(WorkSheetName)

    WrkSht.Copy After:=Sheets(WorkSheetName)

    Set WrkSht = Nothing

End Sub

ボタン クリック イベントから、次を使用して呼び出します。

Sub Button1_Click()

    Call CopySheet("WorkSheetToCopyName") 
    'You could also replace the string name with ActiveSheet if you so wish

End Sub

これにより、現在のシートと次のシートの間にワークシートのコピーがダンプされます。Excel 2003 と Excel 2007 でテストしましたが、両方で動作します。悲しいことに、2 番目の名前にはきれいな名前が付けられません。ソース ワークシートと同じ名前が付けられ、その後に (2) が付けられます。

すべての書式設定、保護、および数式も全体にコピーされます。これは最初のカーボン コピーです。

于 2009-11-16T23:01:00.267 に答える
0

おそらく次のようなものです (Excel 2003 のみでテスト済み):

Dim srcSheet, dstSheet
    Set srcSheet = ActiveSheet

    Sheets.Add
    Set dstSheet = ActiveSheet

    srcSheet.Activate
    srcSheet.Cells.Select
    Selection.Copy

    dstSheet.Activate
    dstSheet.Cells.Select
    ActiveSheet.Paste
于 2009-11-16T21:49:32.813 に答える