bugfix> excel > 投稿

私はまだvbaが初めてなので、ワークシートを新しいワークブックにコピーし、セル値に基づいて新しいワークブックの名前を変更する方法について質問があります。ワークシート名が「Summary」であり、ワークシートをコピーして新しいワークブックにエクスポートしたいが、新しいワークブックにセル値に従って名前を付けたい(この場合、それに応じて名前を付けたいセルB3に)。以下は私が試したコードです:

Sub Sample2()
    Dim wksht As Summary
    Set wksht = ActiveSheet
    Dim path As String
    path = "C:\Desktop"
        wksht.Copy
        ActiveWorkbook.SaveAs filename:=path & wksht.Range(B3).Value & ".xlsx"
End Sub

「ユーザー定義型が定義されていません」というエラーが表示され続けます。これで私を助けてくれませんか?

ありがとう。

回答 2 件
  • Dim wksht As Summary
    
    

    エラーの原因である可能性があります!タイプ「Summary」は定義済みタイプではありません。 Dim wksht as WorkSheet に変更する必要があります

  • いくつかの変更が必要です:
    1. @PITが述べたように、wkshtは「Summary」ではなくWorkSheetとして定義する必要があります
    2.「Summary」シートからマクロを実行すると仮定すると、コードは機能します。それ以外の場合は、wkshtを「Summary」ワークシートに設定する必要があります。
    3. Range(B3).ValueをRange( "B3")。Valueに変更する必要があります

    全体的に、グーグルを探検することをお勧めします、あなたのケースのサンプルのトン

    Sub Sample2()
        Dim wksht As WorkSheet
        Set wksht = ActiveSheet
        Dim path As String
        path = "C:\Desktop\"
            wksht.Copy
            ActiveWorkbook.SaveAs filename:=path & wksht.Range("B3").Value & ".xlsx"
    End Sub
    
    

あなたの答え