現在、セル内に2つのカテゴリの何かの最初の日付を見つけるコードを書いています。Excel VBA - 2つの条件が成立していないMINを評価する
セルの1つに日付が入力されている場合はそのセルが無視されますが、他のセルが空白の場合は評価式が実行されます。
私が抱えている問題は、コード式がシート上で動作しますが、コードでは発生しません。エラー:「実行時エラー '1004':アプリケーション定義またはオブジェクト定義エラー」。
コードはxMinScaff = Evaluate("=MIN(IF('Instruction History'!$D:$D=" & cell.address(False, False) & ",IF('Instruction History'!$E:$E=""Scaffold Req"",'Instruction History'!$H:$H)))")
で失敗しています。また、かなり同じであるため、xMinWorks = Evaluate("=MIN(IF('Instruction History'!$D:$D=" & cell.address(False, False) & ",IF('Instruction History'!$E:$E<>""Scaffold Req"",'Instruction History'!$H:$H)))")
で失敗すると思います。
ここに私が現在持っているコードがあります。おかげ
Private Sub CommandButton4_Click()
Dim cell, cellRange As Range
Dim lastRow As Long
Dim xMinScaff, xMinWorks As Double
lastRow = sheets("Current Asset List").cells(Rows.count, "A").End(xlUp).Row
Set cellRange = sheets("Current Asset List").Range("A8:A" & lastRow)
For Each cell In cellRange
If cell.Offset(0, 24) = "" Then
xMinScaff = Evaluate("=MIN(IF('Instruction History'!$D:$D=" & cell.address(False, False) & ",IF('Instruction History'!$E:$E=""Scaffold Req"",'Instruction History'!$H:$H)))")
If xMinScaff <> "0" Then
cell.offset(0, 24).Value = Format(xMinScaff, "DD/MM/YYYY")
End If
End If
If cell.Offset(0, 25) = "" Then
xMinWorks = Evaluate("=MIN(IF('Instruction History'!$D:$D=" & cell.address(False, False) & ",IF('Instruction History'!$E:$E<>""Scaffold Req"",'Instruction History'!$H:$H)))")
If xMinWorks <> "0" Then
cell.offset(0, 25).Value = Format(xMinWorks, "DD/MM/YYYY")
End If
End If
Next cell
End Sub
RGA、それらを選んでくれてありがとう、私はコードが失敗したときに定義するために投稿を更新しました。ありがとう! – atame
@atameそれを追跡するのは難しいですが、私はあなたが数式のIFステートメントのいくつかの条件が不足している可能性がありますと思います。あなたは 'xMinWorks'のために何を計算しようとしていますか? VBAで直接行う方がはるかに簡単ですが、式 – RGA
を避けるのは、IDが一致する場合は「xMasScaff」、足場の場合は「 ' xMinWorks 'この式は、CTRL SHIFTENTERを押したときにシート上で使用するときに機能します。私はこれが検索を行うために数千の行があるので、これを完了させる最も簡単な方法だと思っていました。ありがとう – atame