找不到问题所在:运行时错误"1004"应用程序定义或对象定义错误



我最近创建了一个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"中的"。

最新更新