2014-09-19 2 views
1

Я пытаюсь опубликовать несколько листов в Excel с помощью VBA. Мне нужно опубликовать листы 2 и 3.Excel опубликовать несколько листов, используя VBA

Ниже приведен код.

With ActiveWorkbook 
    .WebOptions.AllowPNG = False 
     With .PublishObjects(2) 
      Range("A1").Activate 
      .Filename = "D:\Reports\09192014\MNM.html" 
      .Publish (True) 
     End With 
End With 

В PublishObjects(2) я меняю число от 2 до 3 вручную, как показано ниже.

With ActiveWorkbook 
    .WebOptions.AllowPNG = False 
     With .PublishObjects(3) 
      Range("A1").Activate 
      .Filename = "D:\Reports\09192014\Coal.html" 
      .Publish (True) 
     End With 
End With 

Тем не менее, хотя в докладе HTML coal.html Я получаю MNM.html данные и, что тоже имеет половину данных.
Как я могу перебирать листы и публиковать объекты?

ответ

0

Вы не должны добавлять его первый, как это ?:

With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _ 
     "D:\Reports\09192014\MNM.html", "Sheet1", , _ 
     xlHtmlStatic, , "") 
     .Publish (True) 
     .AutoRepublish = False '~~> True updates HTML when workbook is saved 
    End With 

    With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _ 
     "D:\Reports\09192014\Coal.html", "Sheet2", , _ 
     xlHtmlStatic, , "") 
     .Publish (True) 
     .AutoRepublish = False 
    End With 

После добавления его, то есть время, вы можете получить доступ к нему с помощью PublishObjects Collection по номеру индекса.
Индекс будет основан на последовательности, созданной Object.

+0

При попытке использовать одно и то же приложение кода отображается сообщение об ошибке «Требуемый объект» Замененный лист1 с сообщением MNM (лист, который я хочу опубликовать) и даже попытался с Листом 1, но все еще получал сообщение об ошибке. – user3670700

+0

@ user3670700 ** Лист1 ** следует заменить на имя листа. Также попробуйте записать макрос, сделав публикацию вручную, чтобы получить правильные записи в аргументах. – L42

+0

Это работает, но нам нужно добавить еще одну строку перед публикацией строки. С ActiveWorkbook.PublishObjects.Add (xlSourceSheet, _ "D: \ Reports \ 09192014 \ MNM.html", "Sheet1",, _ xlHtmlStatic,, "") Диапазон («A1»). Активировать .Publish (True) .AutoRepublish = False '~~> True обновляет HTML при сохранении книги End With – user3670700

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