[[20220518140446]] 『コンボボックスを利用してシート名を取得したいで』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コンボボックスを利用してシート名を取得したいです』(初心者)

現在、登録フォームを作成してその内容を指定のシートへ登録するものを作成中です。
シートは月別に分かれており、シート名が1月〜12月の12シートと登録フォーム用の全13シート構成です。

登録フォームは、会社名、内容、金額、登録日、登録シートの5項目です。
登録シート項目のみコンボボックスで1〜12月を選択できるようにしてあります。

登録内容をコンボボックスで選んだシートに登録したいです。
ex)コンボボックス:4月⇒4月シートに登録


Private Sub Combo登録シート_Change()
    With Combo登録シート
        Worksheets("登録フォーム").Range("A1").Value = .List(.ListIndex)
    End With
End Sub

↑ここで、A1セルにコンボボックスの内容を反映しています。


Private Sub cmd登録_Click()

       Dim wRow As Long

    Dim wstf As Worksheet
    Set wstf = Worksheets(Range("A1").Value)

    With wstf
        wRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1   '最終行取得
        .Cells(wRow, 1) = wRow - 1
        .Cells(wRow, 2) = Me.Text会社      'フォームに入力された各データをシートに送る
        .Cells(wRow, 3) = Me.Text内容
        .Cells(wRow, 4) = Me.Text金額
        .Cells(wRow, 5) = Me.Text登録日

    End With

    Unload Me      'フォームを閉じる
End Sub

上記の
 Dim wstf As Worksheet
 Set wstf = Worksheets(Range("A1").Value)
ここでエラーが起きてしまいます。

お分かりになられる方がいらっしゃいましたらご教示いただきたいです。
よろしくお願いいたします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


大抵の場合、Range("A1").Valueっていう名前のシートは無い!って怒っているんじゃないですかね。
ステップ実行するなりして、値を確認されることをおススメします。
(tkit) 2022/05/18(水) 14:31

ロジック構成で1点。
ComboBoxの値をチェンジイベントでセルに書き出す意味が無いのでは。
ComboBoxもValueプロパティを持っていますので、
TextBox同様、CommandButton押下時に取得するのが、
適当ですよ。

(tkit) 2022/05/18(水) 14:36


ステップ実行して、間違いをみつけました。
ありがとうございます。

また、ロジック構成も見直してスッキリしました。

ありがとうございます。
(初心者) 2022/05/18(水) 15:25


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.