Условные опции флажков в форме Excel - PullRequest
0 голосов
/ 09 ноября 2018

Этот вопрос находится за пределами моего диапазона навыков - я никогда раньше не работал с кнопками или флажками в «живой» форме. Я объединил две формы Excel вместе, чтобы создать одну основную форму. Несмотря на то, что форма очень похожа, в Калифорнии есть дополнительные параметры для проверки типа списка поставщиков, чего нет в национальной форме.

enter image description here

То, что я хотел бы сделать, это выбрать Калифорнию вверху, и в качестве опций должны быть доступны Список региональных поставщиков и Полный список Калифорнии (CD), тогда как если я выберу Национальный, они будут недоступны. Множество разных людей будут использовать эту форму, поэтому я должен убедиться, что они не могут нажимать на то, что они хотят. Я не сильный кодер, кто-то еще строил формы, я просто откровенничал их вместе. Большинство решений, с которыми я столкнулся, которые я могу понять, предназначены для элементов управления ActiveX, и я использовал простые элементы управления формы. Я также прошу прощения за размещение всего кода, я не совсем уверен, куда вставить контрольный код флажка. Если у кого-то есть хороший ресурс на эту тему для новичков, которого они могут порекомендовать, я был бы очень признателен за это.

Option Explicit

Function checkComplete()

'Dim TextBox1 As OLEObject

If IsEmpty(Range("I6")) Then
    MsgBox "Please enter the Claimant Name."
    Range("I6").Select
    checkComplete = False
ElseIf IsEmpty(Range("I8")) Then
    MsgBox "Please enter the Claim #."
    Range("I8").Select
    checkComplete = False
ElseIf IsEmpty(Range("AF6")) Then
    MsgBox "Please enter the Date that the list is needed by."
    Range("AF6").Select
    checkComplete = False
'ElseIf TextBox1.Text = "" Then
    'MsgBox "Please enter a description."
    'TextBox1.Select
    'checkComplete = False
Else
    checkComplete = True
End If

End Function

  Sub submitForm()

  If checkComplete = False Then Exit Sub

  Dim thisWb As Workbook, wbTemp As Workbook
  Dim ws As Worksheet

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Application.EnableEvents = False

  Set thisWb = ThisWorkbook
  Set wbTemp = Workbooks.Add

    'Save Network Development Form worksheet to new workbook.
     'Needs to be copied from an xltm to an xlsx workbook in order to email a good xlsx file that is not corrupt.
 thisWb.Sheets(1).Copy After:=wbTemp.Sheets(3)

 For Each ws In wbTemp.Worksheets
    If ws.Name <> "Network Development Form" Then
        ws.Delete
    End If
 Next

 ActiveWindow.ScrollRow = 1

 'Save temporary copy of workbook
 Dim TempFilePath As String
 Dim TempFileName As String
 Dim FileExtStr As String

 TempFilePath = Environ$("temp") & "\"
 TempFileName = "Network Development - Claim#" & Range("I8").Value
 FileExtStr = ".xlsx"

 Set wbTemp = ActiveWorkbook
 wbTemp.SaveCopyAs TempFilePath & TempFileName & FileExtStr

'Email copy of form to Networks
 Dim outlook As Object
 Dim outlookMail As Object
 Dim UName As Variant

 Set outlook = CreateObject("Outlook.Application")
 Set outlookMail = outlook.CreateItem(0)
 UName = Environ("UserName")

 With outlookMail
    .To = ""
    .CC = UName & "@auw.com"
    .Subject = "Network Development Form"
    .Attachments.Add TempFilePath & TempFileName & FileExtStr
    .Send '.Display
 End With

 Kill TempFilePath & TempFileName & FileExtStr

 Set outlook = Nothing
 Set outlookMail = Nothing

 wbTemp.Activate
 wbTemp.Close SaveChanges:=False

 thisWb.Activate

 Application.ScreenUpdating = True
 Application.DisplayAlerts = True
 Application.EnableEvents = True

 thisWb.Close SaveChanges:=False

 End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...