excel - 对象变量或未设置块 - 用户窗体
问题描述
我对 VBA 很陌生,我创建了一个用户表单,我想要它做的只是在单击 Enter 按钮后,它将填充的文本框添加到 Excel 工作表的下一个空行中。我得到对象变量未设置(在 rw = ws.Cells 行),我不知道如何设置它。
非常感谢。
Private Sub enter_Click()
Dim rw As Integer
Dim ws As Worksheet
Set ws = Worksheets("Home")
rw = ws.Cells.Find(What:=” * ”, SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
ws.Cells(rw, 1).Value = Me.TextBox1.Value
ws.Cells(rw, 2).Value = Me.TextBox2.Value
End Sub
解决方案
试试这个。
你需要直引号而不是那些弯引号。
使用Find
always build 时检查是否找到了您的术语,否则在尝试将行分配给Nothing
.
如果您正在寻找第一个未使用的行,还要设置该After
参数 - 从顶部开始并向上工作,即循环回到底部并向上。
Private Sub enter_Click()
Dim rw As Long 'rather than integer
Dim ws As Worksheet
Dim r As Range
Set ws = Worksheets("Home")
Set r = ws.Cells.Find(What:="*", after:=ws.Cells(1), SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues)
'alternatively could use rw=ws.range("A" & rows.count).end(xlup).row + 1
If Not r Is Nothing Then
ws.Cells(r.row+1, 1).Value = Me.TextBox1.Value
ws.Cells(r.Row + 1, 2).Value = Me.TextBox2.Value
End If
End Sub
推荐阅读
- ios - ASWebAuthenticatioSession SSO 对话同意问题
- sql - Presto SQL 中的唯一行标识符
- r - 如何将 JSON 列的流派、制作公司、演员转换为 tibble 或 df?
- r - 在 pdf 上使用 rmarkdown 绘图
- python - 如何在pydatadable中使用group by计算每个类别的实例数
- powerbi - 请参阅 DAX 计算列中的切片器过滤表
- javascript - 如何在 React 组件中为整数数据类型初始化状态?
- git - Azure DevOps 上的 Git 告诉我有 100 个提交要合并,即使我只做了一些更改
- oracle11g - 授予 Oracle 中特定索引的 OR 可见性
- qt - 所选项目的字体大小不会改变