这是个小背景。在陆军航空业,我们必须至少每60天进行一次夜间格格尔(NG)飞行。此日期是从上次进行NG飞行时收集的,目的是以该模式显示和跟踪货币。

将上面链接的图片作为参考(实际书籍的屏幕截图),我尝试根据单元格(P列) (P28)中的输入(>或= 1.0)更新另一个选项卡(显示面板)上的日期(显示面板)中的日期(B列)(P28)。
在同一列中,每当在下面进行另一个NG小时条目时,它将再次执行脚本,前提是上述内容适用。
我试过打几句VBA的台词,但我运气不好。
发布于 2018-02-24 21:56:10
这是我认为您需要的内容的外壳,它位于与监视表P的表关联的代码窗格中。
如果P列有更改,如果值为>=1,则触发
还有一点逻辑。只有当新值大于现有值时,我才更新C32。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim updateCell As Range
Dim lastDateCell As Range
Set updateCell = ThisWorkbook.Worksheets("Display Panel").Range("C32")
Set lastDateCell = ThisWorkbook.Worksheets("Display Panel").Range("AA32")
If Target.Column = 16 And Target.Value >= 1 Then
If Target.Offset(, -14) > updateCell Then
lastDateCell = updateCell
updateCell = Target.Offset(, -14) 'only update if greater than existing
End If
End Sub Flight Log工作表代码窗格中的代码:

发布于 2018-03-25 21:11:34
(代表问题作者发布解决方案)。
下面是我补充的内容。
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Flight Log").Unprotect "Password Here" 'This unprotects the sheet to allow changes
Dim updateCell As Range
Dim lastDateCell As Range
Set updateCell = ThisWorkbook.Worksheets("Computations").Range("A36") 'This is the primary date location
Set lastDateCell = ThisWorkbook.Worksheets("Computations").Range("A40") 'This is the backup date location
If Target.Column = 16 And Target.Value >= 1 Then 'This check P column for the value
If Target.Offset(, -14) > updateCell Then 'If "P" returns the value, date in "B" is grabbed
lastDateCell = updateCell 'This updates the primary date cell
updateCell = Target.Offset(, -14) 'This ensures date is not overridden by lesser value
End If
End If
Sheets("Flight Log").Protect "Password Here" 'This line reprotects the sheet
End Sub此外,我还使用两个查找函数来根据VBS抓取的日期来计算小时:
=IFERROR(LOOKUP(A36,'Flight Log'!B:B,'Flight Log'!P:P),"/// NG DATE ERROR ///")和,
=IFERROR(LOOKUP(A40,'Flight Log'!B:B,'Flight Log'!P:P),"/// NO B/U DATE ///")在此之后,我使用另一个IF函数来验证是否误报了时间。
=IF(A37>=1,A36,IF(A41>=1,A40,"NG HOUR ERROR"))简单的IF函数检查和验证时间没有被飞行员不正确地输入-这将提示VBS脚本获取那个日期-然后重新输入它的预定“正确”值。例如,“飞行员输入时间块,飞行员意识到他输入的时间是错误的,并纠正它。”这将避免他的错误,而不是一个整体的错误。
https://stackoverflow.com/questions/48967670
复制相似问题