advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 85 for VBA 強制終了 (0.004 sec.)
vba (14717), 強制終了 (237)
[[20211118144119]]
#score: 16177
@digest: 3892725b10dcd8966e600ee2e716bb23
@id: 89640
@mdate: 2021-11-25T06:32:20Z
@size: 4194
@type: text/plain
#keywords: franny (26192), activete (24234), 数)) (10845), 果” (10831), (fr (5851), 数). (5443), 数as (3969), ー9 (3108), 味合 (2531), ・半 (2462), 角・ (2447), 変数 (1882), 後者 (1800), 数= (1755), デバ (1716), cstr (1616), activate (1579), クテ (1539), 前者 (1487), マナ (1428), ィブ (1413), worksheets (1333), 木) (1289), アク (1260), 2021 (1196), バッ (1079), 見直 (1038), 者は (1005), ブに (1000), 全角 (884), ティ (859), 番目 (856)
『セルの値と同じ名前のシートをアクティブにする』(franny)
度々お世話になります。 ”結果”という名前のシートのA1セルに入力した値と同じ名前のシート (単純に1,2,3と12まで連番にしてあります)をアクティブにしたいのですが 変数=ActiveSheet.Range("A1").Value Worksheets(変数).Activete でうまくいかず、助言を得て 変数=WorkSheets(”結果”).Range("A1").Value Worksheets(変数).Activete にしましたがエラー9が出ます。 VBAを学び始めて日が浅いので基本的なことがまだおろそかですが どこが間違っているか教えていただければ助かります。 よろしくお願いいたします。 < 使用 Excel:Office365、使用 OS:Windows10 > ---- Dim 変数 As String (マナ) 2021/11/18(木) 15:03 ---- あるいは Worksheets(Cstr(変数)).Activete (マナ) 2021/11/18(木) 15:09 ---- Dim 変数 As stringはかいてあります 返信ありがとうございます。 (franny) 2021/11/18(木) 15:11 ---- Worksheets(Cstr(変数)).Activate にしてもエラー9が出てしまいました… (franny) 2021/11/18(木) 15:14 ---- では、その名前のシートがないだけではありませんか。 全角、半角の違い、スペースの有無とか。 (マナ) 2021/11/18(木) 15:17 ---- シートはあります 全角・半角も見直しました。 Worksheets(Cstr(変数)).Activateにデバックがでます。 (franny) 2021/11/18(木) 15:30 ---- シートは全部マクロを入力したブック上にあるのだろうか? (ねむねむ) 2021/11/18(木) 15:48 ---- >Dim 変数 As stringはかいてあります ならば、Cstrは不要です。もとのままでOK。 >全角・半角も見直しました。 念のため、A1をコピーして、シートタブに貼り付けてください。 (マナ) 2021/11/18(木) 16:15 ---- 変数=ActiveSheet.Range("A1").Text に変えると、どうなるのかな? (どん) 2021/11/18(木) 16:44 ---- 横からですが。 ■1 VBAの世界では基本的に、対象のシートやセルを明示すれば、いちいちアクティブにしたり選択したりする必要はありません。 よって、質問の答えではありませんが、そもそもシートをアクティブにする処理が必要なのかは再考されたほうがよいと思います。 ■2 Worksheets(1).Activate Worksheets("1").Activate Excel君にとって↑は意味合いが異なります。 前者は【1番目】のシートをアクティブにしなさい 後者は【「1」という名前】のシートをアクティブにしなさい という意味になります。 そして、上記で何が違うのかというと前者は1という【数値】であり、後者は1という【文字列】であるかの違いです。 ■3 上記を踏まえると↓ですから、後者の【文字列】(シート名)としてExcel君に伝えればよいことになります。 >単純に1,2,3と12まで連番にしてあります 数値を文字列として扱う(変換する)には ・一旦String(文字列)型の変数に格納する ←マナさんがはじめに提示された方法 ・Cstr関数をつかう方法 ←マナさんが2番目に提示された方法 ・""を文字列結合する方法 などがあります。 これを踏まえると↓のようにしてもOKです。(上記の3番目の方法) Sub さんぷる() Worksheets(ActiveSheet.Range("A1").Value & "").Activate End Sub ■4 なお、実際のコードでは正しく書いていると思いますが、Activ【a】teです。 誤 〜〜.Activete 正 〜〜.Activate ■5 >デバックがでます。 細かい話ですが、デバッグが出ているのではなく【実行時エラー】が発生しています。 エラーが発生したので、直ぐにデバッグ(プログラム修正作業)するか、とりあえずプログラムを強制終了するのか聞かれているのです。 ■6 インデックスが有効範囲にありません。(エラー番号:9) が出ると言うことは、その指定されたシートが無いということになります。 既に皆さんがアドバイスされているところではありますが、シート名の一覧を提示してみてはどうでしょうか? ↓を実行すると【イミディエイト】にシート名を列挙したものを出力しますので、それをそのままコピペして提示してみるとよいとおもいます。 Sub 検証() Dim SH As Worksheet Dim buf As String For Each SH In Worksheets buf = buf & SH.Name & "," Next Debug.Print Left(buf, Len(buf) - 1) End Sub (もこな2 ) 2021/11/18(木) 16:59 ---- もこな様 丁寧に解説ありがとうございます。 まず1の意味合いをまだ理解していないので調べます。 2,3は理解しました。 4はすみません、スペルミスです。 5について、用語についてまだ漠然としか理解していないのでもう一度教科書としている本を確認します。 6シート名変更したら計算されるようになりました。 VBAはじめたばかりで拙いことが多いです、ご丁寧に説明してくださりありがとうございます。 (franny) 2021/11/25(木) 15:32 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202111/20211118144119.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608128 words.

訪問者:カウンタValid HTML 4.01 Transitional