Я создаю автоматизированную форму ввода данных в Excel. У меня первая часть написана в Excel на Windows, потому что Ma c не поддерживает "UserForm". Я попытался проверить мою форму пользователя на Ma c, и я получаю эту ошибку:
«Ошибка времени выполнения» 380 Не удалось установить свойство RowSource. Неверное значение свойства. "
Я пытался найти ответы на некоторые вопросы, как это исправить, и переключил его на Ma c, но ничего не нашел. Я не кодер. Я Я использую некоторые видео и учебные пособия для создания этой формы для моего предложения. Данные в форме являются временными.
Я приложил скриншот того, как выглядит моя форма, какую ошибку я получаю, и код, в котором я есть ошибка. Также код здесь:
Sub Show_Form()
frmForm.Show
End Sub
Я должен отметить, что моя форма пользователя отлично работает на Windows.
Полный код из модуля 1:
Sub Reset()
Dim iRow As Long
iRow = [Counta(Database!A:A)] ' idetifying the last row
With frmForm
.txtID.Value = ""
.txtName.Value = ""
.optMale.Value = False
.optFemale.Value = False
.cmbDepartment.Clear
.cmbDepartment.AddItem "HR"
.cmbDepartment.AddItem "Operation"
.cmbDepartment.AddItem "Training"
.cmbDepartment.AddItem "Quality"
.txtCity.Value = ""
.txtCountry.Value = ""
.lstDatabase.ColumnCount = 9
.lstDatabase.ColumnHeads = True
.lstDatabase.ColumnWidths = "30,60,75,40,60,45,55,70,70"
If iRow > 1 Then
.lstDatabase.RowSource = "Database!A2:I" & iRow
Else
.lstDatabase.RowSource = "Database!A2:I2"
End If
End With
End Sub
Sub Submit()
Dim sh As Worksheet
Dim iRow As Long
Set sh = ThisWorkbook.Sheets("Database")
iRow = [Counta(Database!A:A)] + 1
With sh
.Cells(iRow, 1) = iRow - 1
.Cells(iRow, 2) = frmForm.txtID.Value
.Cells(iRow, 3) = frmForm.txtName.Value
.Cells(iRow, 4) = IIf(frmForm.optFemale.Value = True, "Female", "Male")
.Cells(iRow, 5) = frmForm.cmbDepartment.Value
.Cells(iRow, 6) = frmForm.txtCity.Value
.Cells(iRow, 7) = frmForm.txtCountry.Value
.Cells(iRow, 8) = Application.UserName
.Cells(iRow, 9) = [Text(Now(), "DD-MM-YYYY HH:mm:SS")]
End With
End Sub
Sub Show_Form()
frmForm.Show
End Sub
Полный код от userForm
Private Sub cmdReset_Click()
Dim msgValue As VbMsgBoxResult
msgValue = MsgBox("Do you want to Reset the form?", vbYesNo + vbInformation, "Confirmation")
If msgValue = vbNo Then Exit Sub
Call Reset
End Sub
Private Sub cmdSave_Click()
Dim msgValue As VbMsgBoxResult
msgValue = MsgBox("Do you want to save the data?", vbYesNo + vbInformation, "Confirmation")
If msgValue = vbNo Then Exit Sub
Call Submit
Call Reset
End Sub
Private Sub UserForm_Initialize()
Call Reset
End Sub