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