将宏运行到不同的工作表

时间:2017-02-23 16:35:25

标签: excel vba excel-vba

我有两个excel文件,一个是a.xlsm包含宏,另一个是b.xlsx包含各种表格,例如(shee1,sheet2,sheet3等) 我的要求是当我打开a.xlsm文件时,宏应该打开b.xlsx转到sheet2并导出为pdf。 我试过以下代码

Sub Macro4()
'
' Macro4 Macro
'

'
    Sheets("Sales Contract").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "E:\Universal Metals\Workspace\Universal_Metals\data-out\clover_output.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
    Windows("Book1").Activate
End Sub

请建议,因为我是宏观新手。

1 个答案:

答案 0 :(得分:1)

您必须在' Workbook_Open'中编写代码。 ' a.xlsm'文件如下 希望它有效

Private Sub Workbook_Open()   
Dim xlwb As Workbook     

Set xlwb = Workbooks.Open("C:\Users\Admin\Desktop\b.xlsx")    
xlwb.Sheets("Sales Contract").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _    
        "E:\Universal Metals\Workspace\Universal_Metals\data-out\clover_output.pdf", _     
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _    
        :=False, OpenAfterPublish:=True    

End Sub