Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在excel列中打印带有名称的列表pdf文件?_Excel_Printing_Export To Excel_Software Design - Fatal编程技术网

如何在excel列中打印带有名称的列表pdf文件?

如何在excel列中打印带有名称的列表pdf文件?,excel,printing,export-to-excel,software-design,Excel,Printing,Export To Excel,Software Design,我想打印列表pdf文件,它的名称在excel的1列中 我不想按住Ctrl键,在excel的列中逐个查找它的名称,然后选择那些文件。因为可能有很多文件。一个接一个地找需要很多时间 例如上面的图片 什么软件可以支持我这样做?或者我必须做些什么来解决这个问题??? 谢谢你阅读我的帖子 这应该有效: Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _

我想打印列表pdf文件,它的名称在excel的1列中

我不想按住Ctrl键,在excel的列中逐个查找它的名称,然后选择那些文件。因为可能有很多文件。一个接一个地找需要很多时间

例如上面的图片

什么软件可以支持我这样做?或者我必须做些什么来解决这个问题???

谢谢你阅读我的帖子

这应该有效:

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
    ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
 
Public Function PrintPDF(xlHwnd As Long, FileName As String) As Boolean
    Dim X As Long
    
    On Error Resume Next
    X = ShellExecute(xlHwnd, "Print", FileName, 0&, 0&, 3)
    
    If Err.Number > 0 Then
        MsgBox Err.Number & ": " & Err.Description
        PrintPDF = False
    Else
        PrintPDF = True
    End If
    On Error GoTo 0
End Function
 
Sub PrintSpecificPDF()
    'opens the specified pdf and prints it using the default printer
    'note that it uses the default PDF program and leaves it open
    
    Dim strPth As String, strFile As String
    Dim rngList As Range, rngTarget As Range
    
    
    Set rngList = Range(Range("B2"), Range("B1").End(xlDown))
    strPth = "D:\PDF\"
    
    For Each rngTarget In rngList
        
        strFile = rngTarget.Value & ".pdf"
         
        If Not PrintPDF(0, strPth & strFile) Then
            MsgBox "Printing failed"
        End If
        
    Next
    
End Sub

我拿了这个,根据你的情况稍微修改了一下。

我发现了。如果有效,您可以定义包含地址的范围,使用For Next循环选择所述范围的每个单元格,然后运行正确编辑的子例程。我尝试使用他们的代码只输入特定的文件名,而不是使用For Next来获取多个文件名。但它报告了这样一个错误。你能帮我看看这个错误吗?这是我的代码:如果Err.Number>0,那么MsgBox Err.Number&“:”&Err.Description PrintPDF=False,否则PrintPDF=True结束如果出错转到0结束函数子printpspecificpdf()“打开指定的pdf并使用默认打印机打印”注意,它使用默认的pdf程序,并将其作为字符串打开,将strFile作为字符串打开,如果未打印pdf(0,strph&strFile),则MsgBox“打印失败”如果结束子文件,则结束