Notifications
Clear all

O que há de errado com o código?

5 Posts
1 Usuários
0 Reactions
632 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal, estou iniciando meus treinos em VBA, e acredito que esteja impacando em coisas simples,

No código abaixo, estou fazendo a cópia de uma sheet, para uma nova planilha,e estou tentando salvar ela num local com um novo nome, mas... Sem sucesso,

Aparece um erro "1004", dizendo que o Saveas não se relaciona ao objeto na ultima linha, podem me ajudar?

Sub teste()
'
'
    Dim p_name As String
    Dim p_endarquivo As Workbook
    
    p_name = Sheets("macro_email").Range("C1").Value
    
    ActiveSheet.Select
    ActiveSheet.Copy
    ActiveWindow.ScrollColumn = 4
    ActiveWindow.ScrollColumn = 3
    ActiveWindow.ScrollColumn = 2
    ActiveWindow.ScrollColumn = 1
    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Workbooks.SaveAs Filename:="C:" & pname & ".xls"
    
    
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/07/2014 9:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mude a ultima linha... workbooks.close não funciona, vc precisaria usar:
workbooks("nome de um arquivo.xlsx").close
ou
activeworkbook.close

Sub teste()
'
'
    Dim p_name As String
    Dim p_endarquivo As Workbook
    
    p_name = Sheets("macro_email").Range("C1").Value
    
    ActiveSheet.Select
    ActiveSheet.Copy
    ActiveWindow.ScrollColumn = 1

    Cells.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("A:A").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Activeworkbook.SaveAs Filename:="C:" & pname & ".xls"
     
End Sub

e importante, cuidado, vc está definindo que a extensão é xls. mas se seu excel for o 2007 pra cima, tem que ser xlsx....

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/07/2014 9:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Onde você viu o comando close? rsrs

Na verdade, estou tentando salvar um novo arquivo.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/07/2014 9:28 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Só falei errado

    Workbooks.SaveAs Filename:="C:" & pname & ".xls"

isso nao funciona pq vc nao diz qual é o workbook a ser salvo... (a argumentação é a mesma , mesmo assim, rs)

Ou vc usa:

    Workbooks("nome do arquivo.xlsx").SaveAs Filename:="C:" & pname & ".xlsx"

ou vc usa:

    ActiveWorkbook.SaveAs Filename:="C:" & pname & ".xls"

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/07/2014 9:50 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Consegui fazer, obrigado :P

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/07/2014 12:03 pm