excel - Excel执行宏后随机崩溃
问题描述
我正在把头发扯下来。
我正在尝试将用户表单文本框中的值添加到表格中。
但是,一旦 Excel 运行下面的代码,它就会不断地在我身上崩溃。
我得到的错误信息是
运行时错误-2147417848“对象'范围'的方法'值'失败
然后excel崩溃
我试过 Option explicit 来检查我没有丢失一个变量或者它被错误地声明了,我试过删除表并重新开始,我已经开始了一个新的工作簿,我已经更改了表名,我尝试了 4/5 不同的方法将数据添加到表中(简单范围偏移、databodyrange(X,1)、调整表大小等)。添加值时所有崩溃(顺便说一下,这只是像 mike/harry 等的文本)
工作簿有大约 10 个表格,它们都可以完美运行(它们将数据添加到表格等),正是这一个导致了问题
如果我手动将数据添加到表中,它会自动扩展并且没有问题
任何帮助表示赞赏。
Sub Enterprise_Update()
Dim lst As ListObject
Set lst = Sheets("Data Labels").ListObjects("Enterprises")
For Each ctrl In Enterprise_Setup.Controls
If ctrl.Name Like "Enterprise Name Value 1*" Then
z = z + 1
End If
Next ctrl
With lst.Sort
.SortFields.Clear
.Apply
End With
With lst
LstRw = .ListRows.Count
End With
Select Case LstRw
Case Is = 1
lst.DataBodyRange(LstRw, 1).Offset(1, 0).Value = Enterprise_Setup.Controls("Enterprise Name Value 1" & x)
Case Else
For x = 1 To z
sLookFor = CStr(Enterprise_Setup.Controls("Enterprise Name Value 1" & x))
Set oLookin = lst.DataBodyRange
Set oFound = oLookin.Find(what:=sLookFor, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
If Not oFound Is Nothing Then
GoTo err:
Else
With lst
LstRw = .ListRows.Count
End With
End If
r = Enterprise_Setup.Controls("Enterprise Name Value 1" & x).Value
Sheets("Data Labels").Select
Range(lst.Range.Cells(1).Address).End(xlDown).Offset(1, 0).Select
ActiveCell.Value = r
'lst.DataBodyRange(X).Value = r
err:
Next
End Select
With lst.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("Enterprises[Enterprises]"), Order:=xlAscending
.Header = xlYes
.Apply
End With
End Sub
解决方案
我用一种不太漂亮的方式解决了这个问题。我设法扩展了表格,并围绕空白行编写代码,即不计算空白、动态命名范围等
推荐阅读
- docker - 为什么 HostPort 没有显示在来自主机的 Netstat 的输出中
- continuous-integration - 使用特定的提交 ID 构建手动 GitlabCI 管道作业
- django - django 1.6.5 的 CSRF_COOKIE_SAMESITE 等效项
- java - 如果他们让用户获得默认值,我正在尝试让我的开关盒再次循环
- javascript - PHP 无法读取 JSON 但在 SQL 中写入额外的行
- excel - 根据单元格条件和值计算范围的总和
- python - 在两个解析方法之间发送数据并获取 KeyError SCRAPY
- javascript - 错误类型错误:无法读取未定义的属性“imgPath”
- react-native - 在屏幕内呈现模态
- javascript - 我怎样才能使它工作。我试着给 sudo 许可