前提・実現したいこと
VBAのマクロで規則性のあるピーク値を求めるため
プログラムを作成しています.
Range,Cellsのルールのようなところで躓いており
実行時エラー'1004', アプリケーション定義またはオブジェクト定義のエラーです.
というエラーが発生しました.
Range,もしくはCellsを使用する場合(x,y)と行・列を
記載するのですが、行・列ともに変数は使用できないというルールでしょうか?
発生している問題・エラーメッセージ
実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです.
該当のソースコード
VBA
1Sub Compare5_2() 2 3Dim startRow As Integer 4Dim startCol As Integer 5 6Dim MAX_ROW As Integer 7 8Dim i As Integer 9 10Dim ValueA As Single 11Dim ValueB As Single 12 13Dim calValue As Single 14 15Dim jdgVal As Single 16 17Dim rsltCol As Integer 18 19Dim FirstMaxRow As Integer 20 21Dim myRng As Range 22 23Dim startSearchRow As Integer 24Dim myMatchMaxRow As Integer 25Dim serchNum As Integer 26 27Dim ws As Worksheet 28 29startRow = 5 30startCol = 19 'S列のaveだけを使用する 31 32MAX_ROW = 4650 '20secまでで一旦決め打ち 33 34jdgVal = 0.02 '閾値一旦決め打ち 35 36rsltCol = 6 '初期値がF列 37 38startSearchRow = 100 '100行目から探索. 約0.4secまでを対象から除く 39serchNum = 100 '100セルずらして最大値探索していく 40 41'Sheet00000005 42 '最初の最大値を探る⇒最大値の行/列番号(実際は列固定なので行番号のみ)とそのセルの値が欲しい 43 44'Set ws = ThisWorkbook.Worksheets("00000005") 45'Set myRng = ws.Range(ws.Cells(startSerchRow, startCol), ws.Cells(startSerchRow + serchNum, startCol)) 46Set myRng = Range(Cells(startSerchRow, startCol), Cells(startSerchRow + serchNum, startCol)) 47'Set myRng = Range(Cells(100, startCol), Cells(200, startCol)) ' 通る 48'Set myRng = Range(Cells(startSerchRow, 19), Cells(startSerchRow + serchNum, 19)) '通る
試したこと
ソースコードの下から3行目がエラーが出ている部分になります.
startSerchRowを整数に、もしくはstartColを整数にするとエラーは生じません.
初期値が0になっていることでエラーが生じる、シート指定をしていることは無いと思うのですが、、
補足情報(FW/ツールのバージョンなど)
Excel 2016
回答1件
あなたの回答
tips
プレビュー