• ベストアンサー

実行時エラー”1004” 初心者です

Excel_2000のVBAです。 sheet1のコマンドボタンを押すと"明細”というシートのデータが入っている範囲を選択するようにしたいのですが、ActiveSheet.Range(Cells(4, 3), Cell(OwariGyo, 8)).Selectのところで実行時エラー"1004"が出ます。 ヘルプを見ても、よく理解できませんでした。 解決方法をご教示ください。 Worksheets("明細").Select ActiveSheet.Range("C4").Select Selection.End(xlDown).Activate OwariGyo = ActiveCell.Row ActiveSheet.Range(Cells(4, 3), Cell(OwariGyo, 8)).Select End Sub

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんばんは。 ActiveSheet.Range(Cells(4, 3), Cell(OwariGyo, 8)).Select の Cell は、Cells の単純な入力ミスでしょう。 コマンドボタンは"明細"のシートとは別のシート(sheet1)にあって、 そこから明細のシートの範囲を選択しようとしているからと思います。 案1:明細シートの隅っこにコマンドボタンを設置して自分のシート内を範囲選択するようする。 ' Worksheets("明細").Select  ActiveSheet.Range("C4").Select  Selection.End(xlDown).Activate  OwariGyo = ActiveCell.Row  ActiveSheet.Range(Cells(4, 3), Cells(OwariGyo, 8)).Select 自分のシートですから、'Worksheets("明細").Select は要らないです。 案2:sheet1 でコマンドボタンを押して、明細シートに飛ぶだけにして、 Private Sub CommandButton1_Click()  Sheets("明細").Select End Sub 明細シートでは、アクティブになったら、範囲選択をするようにする。 Private Sub Worksheet_Activate()  'Worksheets("明細").Select  ActiveSheet.Range("C4").Select  Selection.End(xlDown).Activate  owarigyo = ActiveCell.Row  ActiveSheet.Range(Cells(4, 3), Cells(owarigyo, 8)).Select End Sub ただ、シート見出しの明細をクリックして明細シートを表示しただけでも範囲選択されます。

kiriburi
質問者

お礼

回答ありがとうございます。 Cell,Cellsは質問を書きもむときにの間違えました。 作業中のExcelではcellsになっていました。 "明細"のシートはほかのBookから移動させてくるものなのでコマンドボタンの設置はできません。 コマンドボタンの設置はあきらめて、案2を参考にし、"明細"のシートを右クリックすると実行するようにしました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

Cell(OwariGyo, ... になっているからじゃないんでしょうか? 正解は Cells(OwariGYo, ... ですよね。

kiriburi
質問者

お礼

回答ありがとうございます。 Cell(OwariGyo, ... の部分は質問を書き込むときに間違えていました。 作業中のExcelではCellsになっていました。 ご迷惑をおかけしました。

すると、全ての回答が全文表示されます。

関連するQ&A