【问题标题】:Mandatory fields red. Now how to save?必填字段为红色。现在怎么保存?
【发布时间】:2016-04-27 18:28:15
【问题描述】:

它的作用:需要用户提供的字段。如果缺少特定字段,则阻止用户保存。在正确保存之前将这些字段变为红色。

我需要什么:好吧,我到底应该如何保存这个......

我想要什么:因为工作表是空白的。我无法保存。必填字段为红色。即使我可以保存,我也希望单元格在我推出之前没有填充。

View Original Post Here

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim xlSht As Worksheet
Dim cellsNotPopulated As Boolean
cellsNotPopulated = False

Set xlSht = ThisWorkbook.Worksheets("1st Call")

    With xlSht

        If .Range("F7") = "" Then
            .Range("F7").Interior.Color = RGB(255, 0, 0)
            cellsNotPopulated = True
        Else
            .Range("F7").Interior.ColorIndex = xlNone
        End If
    End With

    If cellsNotPopulated = True Then
        MsgBox "Please review the highlighted cells and ensure the fields are populated."
        Cancel = True
    End If
End Sub

【问题讨论】:

  • 你能检查另一个值吗,所以 If .Range("F7") = "" and .Range("G7") ""

标签: vba excel


【解决方案1】:

如果您正处于开发过程中并想“打破常规”并节省您当前的努力,那么在标准模块中:

Sub MyPrivateSave()
    Application.EnableEvents = False
    ThisWorkbook.Save
    Application.EnableEvents = True
End Sub

当然,当您完成开发后,您会在将工作簿发送给用户之前删除这个小“保存工具”。

【讨论】:

  • 或添加为第一行 if environ("Username")=your username then exit sub
【解决方案2】:

或添加为第一行if environ("Username")=your username then exit sub

【讨论】:

  • 这是最有意义的,但我在实现此代码时遇到了麻烦。我应该问一个单独的问题还是可以在这里发布?
  • 你有什么问题?
  • 好像我添加这段代码的时候,并没有真正退出sub,而是继续下一行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 1970-01-01
  • 2014-07-25
  • 2011-12-18
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多