[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『実行時エラー1004について』(とら)
お世話になっております。
ご教示いただけますでしょうか?
Sheet2には23名分の名前がB列にあり、C列に乱数を発生させます。
Sheet3には5名分の名前がB列にあり、C列に乱数を発生させます。
それぞれのシートで乱数を昇順に並べて、Sheet1にデータをコピペすることを考えているのですが、なぜか、Sheet2 Sortのところで以下のエラーが出てしまいます。
「実行時エラー1004 オブジェクトRangeメソッドのWorksheetが失敗しました」
これがいくらやっても解決できません。どうかお助けください。
Excel 2016 for Macを使用しています。
Dim i As Long, j As Long
Dim LastRow2 As Long, LastRow3 As Long Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") Set ws3 = Worksheets("Sheet3")
Application.ScreenUpdating = False
LastRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row LastRow3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row
'Sheet2 の C列に乱数発生 For i = 2 To LastRow2 Randomize ws2.Cells(i, 3).Value = Rnd Next i
'Sheet3 の C 列に乱数発生 For j = 2 To LastRow3 Randomize ws3.Cells(i, 3).Value = Rnd Next j
'Sheet2 sort ws2.Range(Cells(1, 1), Cells(LastRow2, 3)).Sort key1:=ws2.Cells(2, 3), Order1:=xlAscending, Header:=xlYes
'Sheet3 sort ws3.Range(Cells(1, 1), Cells(LastRow3, 3)).Sort key1:=ws3.Cells(2, 3), Order1:=xlAscending, Header:=xlYes
< 使用 Excel:Excel2016mac、使用 OS:MacOSX >
ws2.Range(Cells(1, 1), Cells(LastRow2, 3)) ws3.Range(Cells(1, 1), Cells(LastRow3, 3)) 【正しい】 ws2.Range(ws2.Cells(1, 1), ws2.Cells(LastRow2, 3)) ws3.Range(ws3.Cells(1, 1), ws3.Cells(LastRow3, 3))
(名無し) 2018/10/09(火) 15:33
【間違い】
LastRow2 = ws2.Cells(Rows.Count, 1).End(xlUp).Row LastRow3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row
【正しい】
LastRow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row LastRow3 = ws3.Cells(ws3.Rows.Count, 1).End(xlUp).Row
それと大した問題ではありませんが、Randomizeは最初に1回実行するだけで十分です。
(名無し) 2018/10/09(火) 15:36
早速のご指摘ありがとうございます。オブジェクトがそこにも必要なんですね...。大変勉強になりました。
このあたりのことをわかりやすく書いているサイト、もしくは本をご存じでしたら、教えていただけませんでしょうか?
(とら) 2018/10/09(火) 16:02
本や解説ページを読んで省略できる条件を理解しても、省略する限りこの失敗は絶対にやるので
Rangeオブジェクトを示すメソッド、プロパティのワークシートは省略しないようにしましょう。
どういうプロパティが引っかかるかと言うと
https://excel-ubara.com/excelvba1/EXCELVBA356.html
覚えておく必要があるとしたらExcelVBAのオブジェクト構造くらいです。
(名無し) 2018/10/09(火) 16:23
お返事ありがとうございます。
ご紹介いただきましたサイトなどを参考にしっかりと勉強をしたいと思います。
ありがとうございました。
(とら) 2018/10/09(火) 16:27
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.