ジャストアンサーのしくみ:
  • 専門家に質問
    知識豊富な専門家があらゆる質問にお答えするために常に待機しています。
  • 専門家が丁寧に対応
    E メールやサイト内オンラインメッセージなど、さまざまな手段で回答を通知。必要に応じてフォローアップの質問をすることもできます。
  • やり取り回数、制限なし
    専門家からの回答を確認し評価をすることで、支払うかどうかを決めます。
KWSKMKTに今すぐ質問する
KWSKMKT
KWSKMKT, ITエンジニア
カテゴリ: IT・インターネット
満足したユーザー: 1216
経験:  NTTコミュニケーションズ .com Master★★
60772406
ここに IT・インターネット に関する質問を入力してください。
KWSKMKTがオンラインで質問受付中

実行時エラー:1004 Worksheetfunction クラスのRankプロパティを取得できません。

質問者の質問

実行時エラー:1004
Worksheetfunction クラスのRankプロパティを取得できません。vbaで作成したプログラムが急にこの箇所でエラーとなりました。昨日までは正常に動いていて、それ以下の行で何度か修正をしていました。奇妙な事は、整数で例えば10を指定してそのクラスのランクを取得しても
データに無い15のランクが出てきます。
20を指定しても16以上のランクは取得できません。それを繰り返すうちに上記のエラーが出て1ランク分も取得できません。正常に動いているブックの共通部分をコピーしても、やはりエラーとなります。
officeの再インストールもしましたが、修復できませんでした。何が考えられるかご教示お願いいたします。
アシスタント: 了解しました。何かエラーは表示されていますか?その場合、そちらを教えていただけますか?
質問者様: 実行時エラー:1004 Worksheetfunction クラスのRankプロパティを取得できません。
アシスタント: 再起動など、ご自身で何か試みられたことはありますか?
質問者様: officeの再インストールもしましたが、修復できませんでした。 何が考えられるかご教示お願いいたします。
投稿: 10 日 前.
カテゴリ: IT・インターネット
専門家:  akihiroi 返答済み 10 日 前.

すいませんが文字で書かれても仕様が全くわからないです。

VBAそのものを見ないとこれはわかりません。

質問者: 返答済み 10 日 前.
25305;いコードでお恥ずかしいですが・・・。①不可解な点はsanを入力してもmax15までしカウントされず、15以下入力例えば10を指定しても
 データに無い11から15までが出てくる。②最下行のランク取得行でエラーランクのプロパティを取得できない。*以下の部分はその他のブックと共通で他のブックではエラーとなりません。本日急におかしくなりました。
このブック自体に何か問題があるのでしょうか。Worksheets("Sheet1").ActivateDim zen, san, trk, tgm, tum, tgm2 As Integer
Dim kteR As RangeMsgBox "登録者人数入力。"Let zen = Application.InputBox(prompt:="キーワードを入力:", Title:="登録人数入力1", Type:=1)

MsgBox "参加者人数入力"Let san = Application.InputBox(prompt:="キーワードを入力:", Title:="参加者人数入力2", Type:=1)Dim thn As IntegerFor thn = 1 To zenIf IsNumeric(Cells(3 + thn, 4).Value) ThenCells(24 + thn, 2).Value = Cells(3 + thn, 2).ValueCells(24 + thn, 4).Value = Cells(3 + thn, 4).ValueCells(24 + thn, 12).Value = Cells(3 + thn, 12).ValueEnd IfNextRange(Cells(25, 1), Cells(42, 17)).sort _
KEY1:=Cells(25, 4), _
Orientation:=xlTopToBottomFor trk = 1 To sanCells(24 + trk, 14).Value = trkCells(24 + trk, 16).Value = Cells(24 + trk, 2).ValueNextFor tgm = 1 To santum = Cells(24 + tgm, 2).ValueFor tgm2 = 1 To zenIf Worksheets("Sheet2").Cells(5 + tgm2, 5).Value = tum ThenWorksheets("Sheet2").Cells(5 + tgm2, 2).Value = Cells(24 + tgm, 14).ValueWorksheets("Sheet2").Cells(5 + tgm2, 10).Value = Cells(24 + tgm, 4).Value
Worksheets("Sheet2").Cells(5 + tgm2, 18).Value = Cells(24 + tgm, 12).ValueEnd IfNextNextDim atum, atgm, atgm2 As IntegerDim ztum, ztgm, ztgm2 As IntegerDim zthn As IntegerFor zthn = 1 To zenIf IsNumeric(Cells(94 + zthn, 4).Value) ThenCells(71 + zthn, 2).Value = Cells(94 + zthn, 2).ValueCells(71 + zthn, 4).Value = Cells(94 + zthn, 4).ValueCells(71 + zthn, 12).Value = Cells(94 + zthn, 12).ValueEnd IfNextRange(Cells(72, 1), Cells(89, 17)).sort _
KEY1:=Cells(72, 4), _
Orientation:=xlTopToBottomDim akteR As Range
Dim atrk As IntegerSet akteR = Range(Cells(72, 4), Cells(71 + rts, 4))For atrk = 1 To sanCells(71 + atrk, 14).Value = atrkCells(71 + atrk, 16).Value = Cells(71 + atrk, 2).ValueNextFor atgm = 1 To sanatum = Cells(71 + atgm, 2).ValueFor atgm2 = 1 To zenIf Worksheets("Sheet2").Cells(5 + atgm2, 5).Value = atum ThenWorksheets("Sheet2").Cells(5 + atgm2, 3).Value = Cells(71 + atgm, 14).ValueWorksheets("Sheet2").Cells(5 + atgm2, 11).Value = Cells(71 + atgm, 4).Value
Worksheets("Sheet2").Cells(5 + atgm2, 17).Value = Cells(71 + atgm, 12).ValueEnd IfNextNextWorksheets("Sheet2").ActivateDim qg2 As IntegerFor qg2 = 1 To 50If Cells(5 + qg2, 11).Value = "" Then
Cells(5 + qg2, 2).Value = ""
Cells(5 + qg2, 3).Value = ""
Cells(5 + qg2, 5).Value = ""
Cells(5 + qg2, 7).Value = ""
Cells(5 + qg2, 8).Value = ""End IfNextRange(Cells(6, 2), Cells(23, 100)).sort _
KEY1:=Cells(6, 2), _
Orientation:=xlTopToBottom拙いコードでお恥ずかしいですが・・・。①不可解な点はsanを入力してもmax15までしカウントされず、15以下入力例えば10を指定しても
 データに無い11から15までが出てくる。②最下行のランク取得行でエラーランクのプロパティを取得できない。*以下の部分はその他のブックと共通で他のブックではエラーとなりません。本日急におかしくなりました。
このブック自体に何か問題があるのでしょうか。Worksheets("Sheet1").ActivateDim zen, san, trk, tgm, tum, tgm2 As Integer
Dim kteR As RangeMsgBox "登録者人数入力。"Let zen = Application.InputBox(prompt:="キーワードを入力:", Title:="登録人数入力1", Type:=1)

MsgBox "参加者人数入力"Let san = Application.InputBox(prompt:="キーワードを入力:", Title:="参加者人数入力2", Type:=1)Dim thn As IntegerFor thn = 1 To zenIf IsNumeric(Cells(3 + thn, 4).Value) ThenCells(24 + thn, 2).Value = Cells(3 + thn, 2).ValueCells(24 + thn, 4).Value = Cells(3 + thn, 4).ValueCells(24 + thn, 12).Value = Cells(3 + thn, 12).ValueEnd IfNextRange(Cells(25, 1), Cells(42, 17)).sort _
KEY1:=Cells(25, 4), _
Orientation:=xlTopToBottomFor trk = 1 To sanCells(24 + trk, 14).Value = trkCells(24 + trk, 16).Value = Cells(24 + trk, 2).ValueNextFor tgm = 1 To santum = Cells(24 + tgm, 2).ValueFor tgm2 = 1 To zenIf Worksheets("Sheet2").Cells(5 + tgm2, 5).Value = tum ThenWorksheets("Sheet2").Cells(5 + tgm2, 2).Value = Cells(24 + tgm, 14).ValueWorksheets("Sheet2").Cells(5 + tgm2, 10).Value = Cells(24 + tgm, 4).Value
Worksheets("Sheet2").Cells(5 + tgm2, 18).Value = Cells(24 + tgm, 12).ValueEnd IfNextNextDim atum, atgm, atgm2 As IntegerDim ztum, ztgm, ztgm2 As IntegerDim zthn As IntegerFor zthn = 1 To zenIf IsNumeric(Cells(94 + zthn, 4).Value) ThenCells(71 + zthn, 2).Value = Cells(94 + zthn, 2).ValueCells(71 + zthn, 4).Value = Cells(94 + zthn, 4).ValueCells(71 + zthn, 12).Value = Cells(94 + zthn, 12).ValueEnd IfNextRange(Cells(72, 1), Cells(89, 17)).sort _
KEYDim rng17, rng18 As Range
Dim qg1 As IntegerSet rng17 = Range(Cells(6, 17), Cells(5 + rts, 17))Set rng18 = Range(Cells(6, 18), Cells(5 + rts, 18))For qg1 = 1 To sanCells(5 + qg1, 8).Value = WorksheetFunction.Rank(Cells(5 + qg1, 18).Value, rng18, 1) <<ここでエラー!Cells(5 + qg1, 7).Value = WorksheetFunction.Rank(Cells(5 + qg1, 17).Value, rng17, 1)Next
質問者: 返答済み 10 日 前.
20808;ほどお送りしたコードで一部 sanがrtsの誤記になっていますが、ここは問題有りません
専門家:  akihiroi 返答済み 10 日 前.

すいません、コードだけもらっても解析に時間がかかります。。。

Excelファイルそのものを見ないと無理ですよこれは。。。

質問者: 返答済み 10 日 前.
28168;みません原因はシート1からシート2へのデータコピーができていないからのようです。
どこかでポチッとしてしまったようです。解除方法をいろいろ試しましたが未だできません・
専門家:  akihiroi 返答済み 10 日 前.

遠隔操作による解決が望ましいと思います。

文字チャットではこれは解答を導き出すのは至難の業です。。。

IT・インターネット についての関連する質問