Получение определенной или объектной ошибки в моем макросе excel vba, и я не уверен, почему. Я предполагаю, что это имеет какое-то отношение к тому, как я называю ссылку на ячейку. Я рассмотрел некоторые другие подобные вопросы. Они очень похожи, но я пропускаю ее там, где моя ошибка.VBA/Excel Определенная приложением или объектно-ориентированная ошибка
Вот код:
Set AllianceSheet = Worksheets(2)
Dim YearBeginRange As Range
Dim YearEndRange As Range
Dim Year As Integer
Dim BeginRow As Long
Dim EndRow As Long
Dim CountryRange As Range
'Dim WS As Worksheet
'Dim WSName As String
Year = 1965
'WSName = "Ally-" & Year
Set YearBeginRange = AllianceSheet.Range("C1", AllianceSheet.Range("C1").End(xlDown)).Find(What:=Year, After:=AllianceSheet.Range("C1"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If YearBeginRange Is Nothing Then
MsgBox Year & "Begin year not found"
Else
'MsgBox Year & "Begin year found!"
'Debug.Print YearBeginRange.Row
'Debug.Print TypeName(YearBeginRange.Row)
BeginRow = YearBeginRange.Row
End If
Set YearEndRange = AllianceSheet.Range("C1", AllianceSheet.Range("C1").End(xlDown)).Find(What:=Year + 1, After:=AllianceSheet.Range("C1"), LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If YearBeginRange Is Nothing Then
MsgBox Year & "End year not found"
Else
EndRow = YearEndRange.Row
End If
Set CountryRange = AllianceSheet.Range(AllianceSheet.Cells(1, BeginRow), AllianceSheet.Cells(1, EndRow))
'Debug.Print BeginRow
'Debug.Print EndRow
'Debug.Print WSName
End Sub
ошибка приходит на:
Set CountryRange = AllianceSheet.Range(AllianceSheet.Cells(1, BeginRow), AllianceSheet.Cells(1, EndRow))
Я знаю, что я что-то очень простой так что спасибо не хватает заранее. FYI, BeginRow = 65930 и EndRow = 81430 в этом случае.
EndRow ничего, если YearEndRange не найден. Где вы ищете (.Find) для YearEndRange, вы проверяете YearBeginRange. –