VBA no Mac: Criar slide do PowerPoint para cada linha na pasta de trabalho do Excel

1

Eu sou absolutamente novo no VBA. Eu estou tentando criar uma apresentação tal que o conteúdo de cada célula (em uma linha) cria um novo slide na apresentação.

Eu procurei pelo código, mas só consegui encontrá-lo para o Windows. Quando estou tentando usar o código no Mac - OS X 10.7.4 (Excel 2011), estou recebendo um erro.

Precisa de ajuda:)!

Código e erro são os seguintes:

Código:

código convertido em texto:

Sub OneSlideForEachRowCell()
'Open the Excel workbook. Change the filename here.
Dim OWB As New Excel.Workbook
Set OWB = Excel.Application.Workbooks.Open{":Users:vikshek:Desktop:list.xlsx")
'Grab the first Worksheet in the Workbook
Dim WS As Excel.Worksheet
Set WS = OWB.Worksheets(1)
'Loop through each used row in Column A
For i = 1 To WS.Range("A65536").End(xlUp).Row
  'Copy the first slide and paste at the end of the presentation
  ActivePresentation.Slides(1).Copy
  ActivePresentation.Slides.Paste(ActivePresentation.Slides.Count + 1)

  'Change the text of the first text box on the slide.
  ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes(1).TextFrame.TextRange.Text = WS.Cells(i, 1).Value
Next
End Sub

Erro:

Run-time error '429': ActiveX component can't create object

Na depuração, está destacando o texto

Set OWB = Excel.Application.Workbooks.Open(Filename:=":Users:vikshek:Desktop:list.xlsx")
    
por Vikram 14.08.2016 / 16:05

1 resposta

1

O nome do caminho deve incluir o nome do volume. Tente o nome completo do caminho para o arquivo, por exemplo:

Set OWB = Excel.Application.Workbooks.Open(Filename:="Macintosh HD:Users:vikshek:Desktop:list.xlsx")'

Experimente a POSIX nome do caminho do arquivo que não precisa do volume nome, embora este formulário possa não funcionar antes do Excel 2013.

/Users/vikshek/Desktop/list.xlsx

Referência

Consulte Execução de operações de arquivos e pastas programaticamente no Excel 2011 para o Mac para exemplos usando Applescript (com a função MacScript) e VBA.

    
por 17.08.2016 / 19:02