いくつかのことをチェックし、条件付き書式をトリガーするコード を返すVBA関数を書いています。 を除いてすべてが正常に機能し、数式で#value
エラーが発生することがよくあります。これは、式(数千)を含むすべての セルでこれを行います。別のブックを開くと、エラーは と表示されます。 別のブックを開くときに時々起こる。ユーザー定義関数の#valueエラー
機能はここにある:エラーが原因倍セルU2
にあるかもしれないことを疑っ
Function jjcheck(STDTRow As Integer, cuCOL As Integer, cuMax As Integer, trmEnd As Integer, trmEMax As Integer, worksheetSRC As String, lstCTCT As Date) As Variant
'use in spreadsheet =jjcheck(B2,Variables!$G$4,Variables!$G$2,Variables!$F$2,"SRM",U2)
'=jjcheck(B2,Variables!$G$4,Variables!$F$4,Variables!$G$2,Variables!$F$2,"SRM",IF(ISBLANK(U2),TODAY(),U2))
Dim V() As String, dayMax As Integer, lookup As Date, theDiff As Integer, lstContact As String
V = Split(ActiveWorkbook.ActiveSheet.Cells(1, 2).Value, "-"): dayMax = V(1): theDiff = 256
lookup = lstCTCT
theDiff = DateDiff("d", lookup, Date): lstContact = ""
If theDiff > dayMax Then lstContact = "Alert"
Dim STDcu As Integer, STtrmEnd As Date, daysTOtrmend As Integer
STDcu = ActiveWorkbook.Worksheets(worksheetSRC).Cells(STDTRow, cuCOL).Value
STtrmEnd = ActiveWorkbook.Worksheets(worksheetSRC).Cells(STDTRow, trmEnd).Value
daysTOtrmend = DateDiff("d", Date, STtrmEnd)
If STDcu < cuMax And daysTOtrmend < trmEMax Then
jjcheck = "CHECK" & lstContact
ElseIf daysTOtrmend < trmEMax/2 Then
jjcheck = "ETerm" & lstContact
Else
jjcheck = "" & lstContact
End If
End Function
は空で、私 は私が助けるように見えなかったことIF(ISBLANK(U2),TODAY(),U2)
にlstCTCT
のために入れたものを変更しました。 The image shows what happens in the worksheet あなたはそれを与えることができる任意の洞察に感謝します。
、ワークシートの名前(VBAエディタで)を与え、それらを直接参照する - 'wksHome。範囲(...) '。 'ActiveWorkbook'の問題は、あなたが最後にやりとりしたブックに応じて変わるということです。 – CallumDA