Используя MS Project VBA на книге Excel, я хочу переместить лист на крайнюю левую вкладку - PullRequest
0 голосов
/ 24 октября 2019

Это то, что я имею до сих пор

Sub SetupExcel(ByRef xlApp As Excel.Application, ByRef xlbook As Excel.Workbook)

    Set xlApp = New Excel.Application
    Set xlbook = xlApp.Workbooks.Add
    Dim xlsheet As Excel.worksheet         
End Sub


sub Main_routine
    Call SetupExcel(xlApp, xlbook)
    call CreateTaskGraphics()
    ..... create a bunch of additional tabs in this workbook
    goto Exit_Here:


Exit_Here
xlApp.Worksheets("Task Graphics").Select
xlbook.Sheets("Task Graphics").Move Before:=Sheets(Worksheets.Count)`**  "<---- this is failing
..... closing statements
End Sub

Итак, это состоит из множества подводных лодок и основной процедуры. Подпрограмма CreateTaskGraphics создает вкладку и размещает на ней текст и кнопки. Единственное, что терпит неудачу - это следующий за последним оператор в разделе «Exit_Here», где я хочу переместить вкладку «Графика задач», чтобы она оставалась самой левой в рабочей книге. Я использовал каждую комбинацию, которая, как мне кажется, предшествовала инструкции Sheets («Графика задач») ..., например xlBook, xlWorkbook, xlsheet, xlapp и т. Д. Я не могу найти какую-либо комбинацию, которая работает. У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 24 октября 2019

Чтобы переместить лист в начальную (например, крайнюю левую) позицию:

xlbook.Sheets("Task Graphics").Move Before:=xlbook.Sheets(1)

Чтобы добавить его в качестве крайнего левого листа в первую очередь:

Set xlsheet = xlbook.Worksheets.Add(Before:=xlbook.Worksheets(1))

При использовании коллекции Sheets или Worksheets не забудьте указать объект рабочей книги;в противном случае предполагается, что активная рабочая тетрадь может быть не той, для которой она предназначена.

...