2015-05-08 2 views
1

Я пытаюсь активировать многочисленные вкладки, например, у меня есть вкладка с именем «95004700». Я ссылаюсь на эти коды в списке, затем пытаюсь активировать соответствующую вкладку (я установил их = в переменную STRcode). По какой-то причине я постоянно получаю ошибку вне диапазона на «листах» (STRcode). Активировать «Может кто-нибудь объяснить мне, почему? Я чувствую, что это может иметь какое-то отношение к форматированию ячейки, на которую я ссылаюсь, или методу, с которым я установил переменную.Ошибка вне диапазона

Sub Budget_Actual() 

Dim DBLdatarow As Double 
Dim STRcode As Long 
Dim STRname As String 
Dim cell As Range 


    DBLdatarow = ActiveSheet.Cells(Rows.Count, "B").End(xlUp).Row - 1 

    'loop #1 
    Do While DBLdatarow > 5 

     STRcode = Range("D" & DBLdatarow).Value 
     STRname = Range("B" & DBLdatarow).Value 

     Workbooks.Open Filename:="File Path" 

       Worksheets(STRcode).Activate 

       Columns("B:B").Select 

       Set cell = Selection.Find(What:=STRname, After:=ActiveCell, LookIn:=xlFormulas, _ 
       LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
       MatchCase:=False, SearchFormat:=False) 


    DBLdatarow = DBLdatarow + 1 
    Loop 
    'loop #1 

End Sub 

ответ

1

Просто передать строку:

Worksheets(cstr$(STRcode)).Activate 

Как проходит целое число попыток открыть 95004700th лист (основанный на том факте, что Worksheets(1) является еще одним способом решения первого листа и Worksheets("1") адреса листе под названием"1").

+0

Я только что попробовал, и это все еще дает мне ошибку. Что мне следует задать как переменную? –

+0

Такая же ошибка? 'Worksheets (cstr $ (95004700)). Activate' работает для меня –

+0

Да, это работает, я не имею проблем с активацией вкладок, используя их число, но их очень много, поэтому мне нужно использовать переменную для ссылки на них петля. –

1

Листы (STRcode) .Activate активирует номер рабочего листа STRcode. Хотя вы, вероятно, хотите активировать Worksheet с именем STRcode.

Excel не может обрабатывать 95004700 листов.

Вам нужно изменить STRcode из Integer в String.

+0

нет 95004700 листов, это просто имя листа, так как каждый запрашивает уникальный код. есть около 25 листов. –

+0

STRcode as string: => Листы ('95004700'). Активировать, который активирует лист с именем 95004700. вместо STRcode как целое: => Таблицы (95004700) .Activate, поскольку Excel пытается активировать номер листа 95004700 , что, конечно, выходит за пределы диапазона. – PSVSupporter

Смежные вопросы