Я не уверен, где проблема с этим кодом, который я разработал. У меня есть следующие публичные заявления и функции:VBA Excel - ошибка при попытке создать диапазон с помощью функции
Public g_0 As Range
Public Enum RngType
A = 1
H = 2
X = 3
End Enum
Function RngMk(csTable As String, csType As RngType, Optional csHeaderName As Variant = "")
Dim str As String
Select Case csType
Case RngType.A
If csHeaderName = "" Then
str = csTable & "[#All]"
Else:
str = csTable & "[[#All],[" & csHeaderName & "]]"
End If
Case RngType.H
If csHeaderName = "" Then
str = csTable & "[#Headers]"
Else:
str = csTable & "[[#Headers],[" & csHeaderName & "]]"
End If
Case RngType.X
If csHeaderName = "" Then
str = csTable
Else:
str = csTable & Chr(91) & csHeaderName & Chr(93)
End If
End Select
RngMk = Range(str)
End Function
Код выше должен установить любой диапазон внутри данной таблицы ListObject. Тем не менее, когда я добавить следующее в Sub
g_0 = RngMk("Table1", A, "Name")
g_0.Select
Я получаю сообщение об ошибке «91 - предметная переменная или переменная блока не установлен». Я не уверен, что я не хватает ...
При назначении диапазона, вам нужно использовать 'Set' ключевое слово, так что линия должна быть' Set G_0 = RngMk ("Table1 ", A," Name ")' – tigeravatar
Я добавил 'Set', и он избавился от' Run-time error '91'', однако теперь я получаю новую ошибку: 'Run-time error' 424 ': Object required' –
Является ли ваша переменная 'A' установленной для объекта' RngType' обязательной для вашей функции? – tigeravatar