Может кто-нибудь может помочь решить проблему с ReferToRange в моем коде. Я привел пример. Я получаю ошибку 1041 времени выполнения, определенную или объектно определенную ошибку при вызове MAIN. Я связываю список combobox listfillrange с 3 именованными диапазонами в зависимости от значения ячейки. Три диапазона являются динамическими (имеют формулу смещения). выпадающего список является другим листом, чем именованные диапазоны Пожалуйста, помогитеvb, combobox, RefersToRange, Dynamic Named Ranges
Sub MAIN()
Dim PT As Range
Dim i As Long
With Sheet3 ' Unique SPP
setNames .Range("a6")
Set PT = .Range("b1")
i = 1
Do Until PT = ""
If .Range("a1").Value = PT.Value Then
On Error Resume Next
Sheet1.ComboBox1.ListFillRange = ThisWorkbook.Names("view" & i).Name
If Err.Number = 1004 Then
MsgBox "not defined name: view" & i
ElseIf Err.Number <> 0 Then
MsgBox "unexpected error: " & Err.Description
End If
On Error GoTo 0
End If
i = i + 1
Set PT = PT.Offset(0, 1)
Loop
End With
End Sub
Sub setNames(theTopLeft As Range)
Dim theName As Name
Dim nameStr As String
Dim theRng As Range
Dim i As Long
Application.DisplayAlerts = False
theTopLeft.CurrentRegion.CreateNames Top:=True, Left:=False, _
Bottom:=False, Right:=False
Application.DisplayAlerts = True
For Each theName In ThisWorkbook.Names
With theName.RefersToRange.Value
For i = .Cells.Count To 1 Step -1
If .Cells(i) <> "" Then Exit For
Next
End With
If i <> 0 Then theName.RefersTo = theName.RefersToRange.Resize(i, 1)
Next
End Sub
Это выглядит как VBA и не VB.NET. Кроме того, похоже, что это в Excel, поэтому следует добавить тег excel-vba. У динамического тега, вероятно, нет места здесь. –
В чем вопрос? –
Я получаю сообщение об ошибке выполнения 1041, определенное или объектно определенную ошибку при вызове MAIN. Ссылка referToRange выделена, Извините, если я не был прав. Спасибо, что посмотрели мой пост – user25830