エクセルファイルを開くとすぐにポップアップウィンドウを作成しようとしています。期限切れのマテリアルアシスタンスに対して警告するVBAコード
私が持っているExcelブックは、複数のシートを持っています。
シートの1つに「在庫」というタイトルが付けられています。
以下の図に示すように、[在庫]タブには[有効期限までの日数]という列があります。
ブックを開くときにExcelファイルにポップアップが表示されます。このポップアップでは、[在庫]タブの[有効期限までの日数]列がチェックされ、「タイプ欄」の「____マテリアル」のようなものが有効期限まで「____」日かかります。
これは、「有効期限までの日数」の値が0〜14日の場合にのみ発生します。
「有効期限までの日数」の数値が負の場合、「___材料が期限切れになった」というメッセージが表示されます。
私がこれまで持っていたものは次のとおりです。私はworkbook_open()イベントを作成し、このコードは "ThisWorkbook"コードタブにあります。私は以下の持っているものを実行するとき
私はまた、具体的言って、エラーを取得しています:
ファイル名を指定して実行時エラー '13':型が一致しません
Private Sub Workbook_Open()
Application.WindowState = xlMaximized
Dim wb As Workbook
Dim ws As Worksheet
Dim rngUsed As Range, rngExpirationColumn As Range, rngCell As Range
Dim strExpirationMessage As String
Set wb = ThisWorkbook
Set ws = wb.Sheets("Inventory")
Set rngUsed = ws.UsedRange
Set rngExpirationColumn = Intersect(ws.Columns(4), rngUsed)
For Each rngCell In rngExpirationColumn.Cells
If Date - CDate(rngCell.Value2) >= 14 Then
If Len(strExpirationMessage) = 0 Then
strExpirationMessage = rngCell.Offset(0, -3).Value2 & " material has " & (Date - CDate(rngCell.Value2)) & " days left before expiration"
Else
strExpirationMessage = strExpirationMessage & Chr(13) & rngCell.Offset(0, -3).Value2 & " material has " & (Date - CDate(rngCell.Value2)) & " days left before expiration"
End If
End If
Next
MsgBox strExpirationMessage
End Sub
どのラインでエラーが発生しますか? –
まず、IsDate(rngCell.Value2)のテストを追加します。私の推測*はあなたの 'ws.UsedRange'に空のセルがあることです。 – Comintern
"If Date - CDate(rngCell.Value2)> = 14でエラーが発生しています。" –