如何解决找不到问题出在哪里:Run-time error '1004' application-defined or object-defined error
我最近创建了一个 Excel 文件,其中包含一些宏。 在一位论坛成员的帮助下,我设法使用了以下内容:
Sub Name_Range()
Dim i As Long
Dim j As Long
With Worksheets("DB_Elements")
For i = 1 To 85
j = (i - 1) * 14 + 3
ThisWorkbook.Names.Add Name:=.Range("B" & j),RefersTo:=.Range("B" & j & ":X" & (j + 11))
Next
End With
End Sub
但是,当我想运行宏时,它给了我运行时错误“1004”。经过调试,我发现问题出在这一行:
ThisWorkbook.Names.Add Name:=.Range("B" & j),RefersTo:=.Range("B" & j & ":X" & (j + 11))
不知道发生了什么。两个月前,宏过去运行得非常好。什么都没有改变。有什么想法吗?
解决方法
命名多个范围
- 这可能无法解决您的问题,但可能会阐明正在发生的事情。
- 运行后,研究
Immediate
窗口中的信息CTRL+G。
代码
Option Explicit
Sub Name_Range()
With Worksheets("DB_Elements")
Dim rg As Range
Dim NN As String
Dim i As Long
Dim j As Long
Dim wasNotAdded As Boolean
For i = 1 To 85
j = (i - 1) * 14 + 3
Set rg = .Range("B" & j)
NN = CStr(rg.Value)
On Error GoTo NameError
ThisWorkbook.Names.Add Name:=NN,RefersTo:=rg.Resize(12,23)
On Error GoTo 0
If wasNotAdded Then
Debug.Print "Cannot use '" & NN & "' from cell '" _
& rg.Address(0,0) & "'."
wasNotAdded = False
'Else
'Debug.Print "Added the name '" & NN & "' for the range '" _
& rg.Resize(12,23).Address(0,0) & "'."
End If
Next
End With
Exit Sub
NameError:
wasNotAdded = True
Resume Next
End Sub
,
@VBasic2008
它确实以某种方式解决了问题,这意味着当我现在运行宏时,它不会给我运行时错误“1004”。
以下是 Immediate
窗口中的内容:
不能使用单元格“B59”中的“”。 不能使用单元格“B73”中的“”。 不能使用单元格“B87”中的“”。 无法使用单元格“B101”中的“”。 不能使用单元格“B115”中的“”。 不能使用单元格“B129”中的“”。 不能使用单元格“B143”中的“”。 不能使用单元格“B157”中的“”。 不能使用单元格“B171”中的“”。 不能使用单元格“B185”中的“”。 不能使用单元格“B199”中的“”。 不能使用单元格“B213”中的“”。 无法使用单元格“B227”中的“”。 无法使用单元格“B241”中的“”。 无法使用单元格“B255”中的“”。 不能使用单元格“B269”中的“”。 不能使用单元格“B283”中的“”。 不能使用单元格“B297”中的“”。 不能使用单元格“B311”中的“”。 无法使用单元格“B325”中的“”。 不能使用单元格“B339”中的“”。 不能使用单元格“B353”中的“”。 无法使用单元格“B367”中的“”。 不能使用单元格“B381”中的“”。 不能使用单元格“B395”中的“”。 不能使用单元格“B409”中的“”。 不能使用单元格“B423”中的“”。 无法使用单元格“B437”中的“”。 不能使用单元格“B451”中的“”。 无法使用单元格“B465”中的“”。 不能使用单元格“B479”中的“”。 不能使用单元格“B493”中的“”。 不能使用单元格“B507”中的“”。 不能使用单元格“B521”中的“”。 不能使用单元格“B535”中的“”。 无法使用单元格“B549”中的“”。 不能使用单元格“B563”中的“”。 无法使用单元格“B577”中的“”。 无法使用单元格“B591”中的“”。 无法使用单元格“B605”中的“”。 不能使用单元格“B619”中的“”。 无法使用单元格“B633”中的“”。 不能使用单元格“B647”中的“”。 无法使用单元格“B661”中的“”。 无法使用单元格“B675”中的“”。 无法使用单元格“B689”中的“”。 无法使用单元格“B703”中的“”。 不能使用单元格“B717”中的“”。 不能使用单元格“B731”中的“”。 无法使用单元格“B745”中的“”。 不能使用单元格“B759”中的“”。 无法使用单元格“B773”中的“”。 不能使用单元格“B787”中的“”。 不能使用单元格“B801”中的“”。 不能使用单元格“B815”中的“”。 不能使用单元格“B829”中的“”。 不能使用单元格“B843”中的“”。 无法使用单元格“B857”中的“”。 不能使用单元格“B871”中的“”。 不能使用单元格“B885”中的“”。 不能使用单元格“B899”中的“”。 不能使用单元格“B913”中的“”。 不能使用单元格“B927”中的“”。 不能使用单元格“B941”中的“”。 不能使用单元格“B955”中的“”。 不能使用单元格“B969”中的“”。 不能使用单元格“B983”中的“”。 不能使用单元格“B997”中的“”。 无法使用单元格“B1011”中的“”。 无法使用单元格“B1025”中的“”。 不能使用单元格“B1039”中的“”。 无法使用单元格“B1053”中的“”。 无法使用单元格“B1067”中的“”。 无法使用单元格“B1081”中的“”。 不能使用单元格“B1095”中的“”。 无法使用单元格“B1109”中的“”。 无法使用单元格“B1123”中的“”。 不能使用单元格“B1137”中的“”。 无法使用单元格“B1151”中的“”。 不能使用单元格“B1165”中的“”。 无法使用单元格“B1179”中的“”。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。