将数据从用户表单保存到工作表,收到错误消息:对象范围的方法值失败

Saving data from Userform to Sheet, get error message: method value of object range failed

提问人:Paul 提问时间:11/14/2023 最后编辑:egleasePaul 更新时间:11/14/2023 访问量:51

问:

我有一个 userform1,它将数据保存到同一工作表“输入”中的工作表上。当工作表激活时,用户窗体将打开,excel 将在单独的工作表上打开到“输入”。

在下面的代码中,我收到以下代码行的错误消息:“对象范围的方法值失败”:

ThisWorkbook.Sheets("Input").Cells(lr + 1, "B").Value = cmbGrade

cmbGrade是用户窗体上的组合框。

Private Sub cmdSave_Click()

    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets("Input")
    Dim lr As Long
    lr = ThisWorkbook.Sheets("Input").Range("C" & Rows.Count).End(xlUp).Row
      

    ThisWorkbook.Sheets("Input").Cells(lr + 1, "B").Value = cmbGrade

End Sub
Excel VBA 用户窗体

评论

0赞 Notus_Panda 11/14/2023
不确定你所说的“并且 excel 在单独的工作表上打开到”输入“的确切含义,但我从头开始工作,在初始化用户表单时用 sheet2 中的一些值填充组合框,单击按钮并在 B2 中获得所选值(输入为空)。我唯一能想到的可能是错的是工作表名称错了?
0赞 Paul 11/14/2023
嗨,抱歉,我的意思是用户表单打开并激活了不同的工作表。“输入”是隐藏的。工作表名称正确。
0赞 Notus_Panda 11/14/2023
好的,所以我添加了一个 sheet3,将“Worksheet_Activate”事件更改为 Sheet2,隐藏了“Input”并给了 sheet3 一个公式来查看我的 B2 是否正在更改。一切仍然有效,是否在 Userform1 代码隐藏中?cmdSave_Click
0赞 Paul 11/14/2023
是的。当我运行代码并显示错误时,我可以看到“lr”计算正确。我不知道这是否有帮助。
0赞 Notus_Panda 11/14/2023
lr 仅确认您的工作表名称正确,而不是确认 Private Sub 所在的位置。如果您不确定我的意思,请尝试输入cmdSave_Click sub(并检查“即时窗口”中给出的值,相信这是 Ctrl+G 来显示的)Debug.Print Me.Name

答: 暂无答案