excel - 对象变量或未设置 block - 用户窗体

标签 excel vba

我对 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 时始终检查是否找到了您的术语,否则在尝试将行分配给 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

关于excel - 对象变量或未设置 block - 用户窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58973817/

相关文章:

excel - 工作表中的 Active X 组合框

vba - 如何将新行插入范围并复制公式

vba - 如何从VBA中的文本字符串中提取数字

Python,在 excel 工作表中搜索列中的特定字符串并将这些行提取到文本文件

excel - vba范围(单元格(),单元格())复制过去到另一个工作表而不激活另一个工作表

vba - 创建图表时的 Excel 变量范围

wpf - 在单独的线程上从 Excel 读取 WPF 应用程序的性能不佳

vba - 复制并粘贴整行

ruby - 如何在不同的 CSV 中分隔包含在 excel 文件中的表格?

vba - 仅复制粘贴工作表 'name'