簡體   English   中英

VBA InputBox Excel

[英]Vba inputbox excel

我已出於工作目的創建了此投資者郵件列表,並且需要添加更多功能:

我需要“鎖定”輸入框,這意味着您必須填寫所有選項,否則將出現msgbox“請填寫所有選項”。

我還需要鎖定整個電子表格-因此只能通過輸入框將投資者添加到郵件列表中。 只能通過管理員添加沒有輸入框的投資者

我已經在整個互聯網上搜索,但找不到此類功能

非常感謝幫助!

Private Sub OKButton_Click()
Dim emptyrow As Long

'Make sheet1 active
Ark1.Activate

'determine emptyrow
emptyrow = WorksheetFunction.CountA(Range("A:A")) + 1

'Transfer information
Cells(emptyrow, 1).Value = Email.Value
Cells(emptyrow, 2).Value = Bank.Value
Cells(emptyrow, 3).Value = FirstName.Value
Cells(emptyrow, 4).Value = Surname.Value
Cells(emptyrow, 5).Value = AddIn.Value
Cells(emptyrow, 6).Value = TypeComboBox.Value



If CheckBox1.Value = True Then Cells(emptyrow, 7).Value = CheckBox1.Caption

If CheckBox2.Value = True Then Cells(emptyrow, 7).Value = Cells(emptyrow, 7).Value & " " & CheckBox2.Caption

If CheckBox3.Value = True Then Cells(emptyrow, 7).Value = Cells(emptyrow, 7).Value & " " & CheckBox3.Caption

If CheckBox4.Value = True Then Cells(emptyrow, 7).Value = Cells(emptyrow, 7).Value & " " & CheckBox4.Caption

If CheckBox5.Value = True Then Cells(emptyrow, 7).Value = Cells(emptyrow, 7).Value & " " & CheckBox5.Caption

Unload Me

MsgBox "Investor successfully added"


End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

'empty all textboxes

Email.Value = ""
Bank.Value = ""
FirstName.Value = ""
Surname.Value = ""
AddIn.Value = ""

TypeComboBox.Clear

'Fill dinnercombobox
With TypeComboBox
.AddItem "Bank"
.AddItem "Corporate"
.AddItem "DCM"
.AddItem "Fund Manager"
.AddItem "FSA"
.AddItem "Investor"
.AddItem "Insurance"
.AddItem "Magazine"
.AddItem "Other"
.AddItem "Pension Fund"
.AddItem "Rating agency"



End With

'uncheck wishbox
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False
CheckBox4.Value = False

'set focus on email box
Email.SetFocus

End Sub

在強制按下“確定”按鈕之前,您將被強制填寫所有字段:

Private Sub Email_Change()

If Me.Email.Value <> "" And Me.Bank.Value <> "" And Me.FirstName.Value <> "" And _
    Me.Surname.Value <> "" And Me.AddIn.Value <> "" And Me.TypeComboBox.Value <> "" Then

    Me.OKButton.Enabled = True
    MsgBox "Some Fields are missing!"
Else
    Me.OKButton.Enabled = False
End If

End Sub

您將此代碼放在“ Email Textbox更改”事件上。
並且您將需要在所有“ Textboxes更改”事件中添加上述代碼。
這意味着,每次Textboxes值發生變化,它會檢查是否有其他Texboxes是空。
我所做的測試是針對空的,如果您希望滿足某些條件,則可以對其進行修改。
希望這可以幫助您入門。

L42對您問題的前半部分給出了很好的答案,所以我不會解決。 您可以使用Excel的保護表來防止用戶編輯單元格,但是這也將阻止您的VBA代碼也編​​輯單元格。 您可以通過保護工作表,然后在進行更改之前使用VBA取消保護工作表,然后再對其進行保護,來解決此問題。

Sheet1.Unprotect Password:=yourPassword

'Update the values you want here

Sheet1.Protect Password:=yourPassword

如果您的用戶非常精明,並且您擔心他們閱讀代碼並找到密碼,則可以使用密碼保護VBA代碼。 要保護您的代碼,請打開Excel工作簿,然后轉到“工具”>“宏”>“ Visual Basic編輯器(Alt + F11)”。 現在,從VBE中轉到“工具”>“ VBAProject屬性”,然后單擊“保護”頁面選項卡,然后選中“鎖定項目以防止查看”,然后輸入密碼,然后再次確認。 完成此操作后,您必須保存,關閉並重新打開工作簿,以使保護生效。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM