2016-04-27 74 views
0

功能:需要用户输入字段。如果特定字段丢失,阻止用户保存。将这些字段变成红色,直到正确保存。必填字段红色。现在如何保存?

我需要什么:嗯,我究竟如何我应该保存这个...

我想什么:由于工作表是空白。我无法保存。并且必填字段为红色。即使我能拯救我也会像细胞一样没有填充,直到我推出它。

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 
+0

可以检查另一值的第一行,所以如果.Range( “F7”)= “” 和.Range( “G7”)<> “” –

回答

4

如果你正处于发展的中间,想“打破规则”,并保存当前工作,然后在标准模块:

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

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

+1

或添加作为第一行如果environ(“用户名”)=您的用户名然后退出子 –

+0

@Nathan_Sav你有一个好主意..............考虑张贴它作为一个答案。 –

1

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

+0

这是最有意义的,但我无法实现此代码。我应该问一个单独的问题,还是我可以在这里发布? – Solomon3y

+0

你有什么问题? –

+0

看来,当我添加此代码时,它并不实际退出子,而是继续到下一行。 – Solomon3y