Excel 错误13:userform上类似vba语句工作的文本框的类型不匹配

Excel 错误13:userform上类似vba语句工作的文本框的类型不匹配,excel,vba,Excel,Vba,我们的一个电子表格需要用户表单。当尝试将用户值粘贴到包含数据的工作表时,我得到错误代码13:类型不匹配 所有字段都是文本框。除了我们发布信息的地址外,有一行代码是相同的 以下是我所拥有的: Public Sub btnSubmit_Click() Dim TableSht As Worksheet Dim NextRow As Long Set TableSht = ThisWorkbook.Sheets("Table") TableSht.Visible = True 'https://

我们的一个电子表格需要用户表单。当尝试将用户值粘贴到包含数据的工作表时,我得到错误代码13:类型不匹配

所有字段都是文本框。除了我们发布信息的地址外,有一行代码是相同的

以下是我所拥有的:

Public Sub btnSubmit_Click()
Dim TableSht As Worksheet
Dim NextRow As Long

Set TableSht = ThisWorkbook.Sheets("Table")

TableSht.Visible = True

'https://www.mrexcel.com/forum/excel-questions/1017033-making-all-fields-userform-mandatory.html#post4880848
'determine if any fields were left blank
For Each Control In Me.Controls                                     '
Select Case TypeName(Control)
    Case "TextBox"
        If Control.Value = vbNullString Then
            MsgBox "empty field in " & Control.Name
            Exit For
        End If
     Case Else
End Select
Next Control

'data is housed in E3:J3, E5:J5, E7:J7, E9:J9. if statement determines what row information
'should be entered on.
If TableSht.Range("E3") = "" Then
NextRow = 3
    ElseIf TableSht.Range("E5") = "" Then
    NextRow = 5
        ElseIf TableSht.Range("E7") = "" Then
        NextRow = 7
            ElseIf TableSht.Range("E9") = "" Then
            NextRow = 9
                Else
                MsgBox ("There are no more available rows. Contact Craig for additional assistance.")
End If

'paste the user's data entry into the appropriate cells
With TableSht
.Cells(NextRow, 5) = Me.tbOwner
.Cells(NextRow, 6) = CDate(Me.tbDate)
.Cells(NextRow, 7) = Me.tbChange
'Me.tbChange.Value = CDec(Me.tbChange) 'no longer use this but one of my attempts

.Cells(NextRow, 8) = Me.tbAmount
.Cells(NextRow, 9) = Me.tbOriginal
.Cells(NextRow, 10) = Me.tbReason

.Cells(NextRow, 7).Value = Format(Range("G" & NextRow) / 100, "0.00%")
.Cells(NextRow, 8).Value = Format(Range("H" & NextRow), "$##.##")
.Cells(NextRow, 9).Value = Format(Range("I" & NextRow) / 100, "0.00%")
End With

Sheets("Rate Calculator v8").Select

TableSht.Visible = xlVeryHidden

Unload Me
End
End Sub
错误发生在

.Cells(NextRow, 7).Value = Format(Range("G" & NextRow) / 100, "0.00%")
即使“end with”之前的最后一行本质上是同一条语句,如果我删除该行并循环遍历它后面的两行,也不会出错

我尝试过交换两行相似的代码。“Cells(NextRow,7)…和“.Cells(NextRow,9)…”,但错误仍然显示在“Cells(NextRow,7)…”行上


我已确认数据粘贴在G列和I列中的单元格格式均为“百分比”。

请使用一张工作表来限定您的
范围。如果工作表也是
表HT
,则以下内容应适用。如果
范围
来自不同的工作表,请限定该工作表

 = Format(.Range("G" & NextRow) / 100, "0.00%")
 = Format(.Range("H" & NextRow), "$##.##")
 = Format(.Range("I" & NextRow) / 100, "0.00%")

工作得很有魅力。我认为,因为我有“with tablesht”,这就限定了引用。我想它是在限定第一部分“.cells”,而不是“Format(Range)”部分。现在有意义了。非常感谢!