从外部触发器运行VBA代码?

时间:2016-12-30 19:04:08

标签: excel vba excel-vba

当第一个文档保存时,是否可以创建一个在一个工作簿上运行的宏,从另一个工作簿触发?

一些背景知识:我将PDF文档(包含我需要的数据)转换为Excel文档。只能对.xlxs文档进行转换。我可以"另存为"此文档之后是一个启用宏的文档,但整个过程需要更长时间,整个目标是大幅缩短时间。

我有一个可以将.xlsx文件中的数据提取到.xlsm文件的宏,因此我可以根据需要操作数据。我更新.xlxs文件时自动获取它是问题所在。

以下是我目前用来将.xlsx文件中的数据导入到启用宏的Excel文档中的代码。是否有可能在我进行更改时自动提取数据并保存.xlsx文件而无需打开?

Sub Import_Test()     
    Dim Target_Workbook As Workbook
    Dim Source_Workbook As Workbook
    Dim Target_Path As String

    Target_Path = "H:\Test.xlsx"
    Set Target_Workbook = Workbooks.Open("H:\Test.xlsx")
    Set Source_Workbook = ThisWorkbook
    Target_Data = Target_Workbook.Sheets(1).Cells(35, 1)
    Source_Workbook.Sheets(1).Cells(2, 1) = Target_Data
    Source_data = Source_Workbook.Sheets(1).Cells(2, 1)
    Target_Workbook.Sheets(1).Cells(35, 1) = Source_data
    Source_Workbook.Save
    Target_Workbook.Close False
End Sub

1 个答案:

答案 0 :(得分:0)

我看到它的方式 - 你有两个选择: 1)创建一个不断检查'.xlsx'工作簿的最后修改日期的工作簿,一旦它发生变化,就会触发一个宏...这就是你需要打开它才能工作。 2)我认为首选的方法是将.xlsx文件切换为.xlsm或.xlsb文件,正如其他人所指出的那样,这是获取您正在寻找的功能并转换PDF创建的唯一方法来自您当前使用的Adobe的内置PDF创建函数的方法...

在任何一种情况下,您都必须妥协您的一项要求,选项1要求打开工作簿,选项2要求您切换PDF方法。我认为选项2是迄今为止首选的路线,只要没有某些原因必须使用Adobe PDF制造商创建PDF ...

如果您可以使用它,那么这是内置PDF创建器的代码: “Thisworkbook.ExportAsFixedFormat Type:= xlTypePDF,Filename:=”filename“,Quality:= xlQualityStandard,IncludeDocProperties:= True,IgnorePrintAreas:= False,OpenAfterPublish:= True”

希望这有帮助, TheSilkCode