下一个发票编号并将副本另存为excel或pdf

时间:2015-12-04 19:45:14

标签: excel excel-vba invoice vba

我正在尝试获取我的Excel发票以生成下一个发票编号,并在按下按钮时将发票副本保存到文件中。 我使用了以下链接:https://www.youtube.com/watch?v=Tj_Ce7LS1Ok 和几个论坛,但它没有工作。

我将此代码分配给在Excel中创建的按钮:

Sub NextInvoice()
    Range("E5").Value = Range("E5").Value + 1
End Sub

Sub SaveInvWithNewName()
    Dim NewFN As Variant
    ' Copy Invoice to a new workbook
    ActiveSheet.Copy
    NewFW = "C:\Users\Jessica\Desktop\Grow Work\Invoices\Inv" & Range("E5").Value & ".xlsx"
    ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook
    ActiveWorkbook.Close
    NextInvoice
End Sub

当我按下按钮时,它会显示“运行时错误'1004'”。发票编号将更改,但是当副本尝试保存时会发生错误。

2 个答案:

答案 0 :(得分:0)

我使用了相同的代码。由于合并了单元格,我发现了这个问题。我取消了细胞并修改了我的形状。一旦我删除了合并的单元格,这一切都很好。

答案 1 :(得分:0)

我最初有同样的问题,发现我合并了导致问题的单元格,我修复了指定合并的单元格并修复了问题。我看到这是一个旧帖子,但我在发票中使用相同的代码,它完美无瑕。我设置打印两份,“另存为”XLSX副本以提供簿记冗余,清除内容并提前发票号,然后使用新号码保存新的“空”发票。这是我的编码,随意使用你想要的任何部分。

    Sub NewInvoice()

Range("E3").Value = Range("E3").Value + 1
Range("C5:C6").ClearContents
Range("E5:F6").ClearContents
Range("B7:C12").ClearContents
Range("E7:F12").ClearContents
Range("A14:E23").ClearContents
Range("A25:E36").ClearContents
End Sub

Sub SaveInvWithNewName()
    Dim NewFN As Variant
    ' Copy Invoice to a new workbook
    ActiveSheet.Copy
    NewFN = "E:\Bee Lick Gunworks LLC\Customer Invoices\" & Range("E3").Value & ".xlsx"
    ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook
    Print2    
    ActiveWorkbook.Close
    NewInvoice
    ActiveWorkbook.Save     
End Sub

Sub Print2()
For I = 1 To 2
ActiveSheet.PrintOut
Next I
End Sub

指定的单元格特定于我的发票,更改它们以匹配您的发票。即“E3”是我的发票编号,“C5:C6”和“E5”F6“是日期,”B7:C12“是客户人口统计等。

我创建了一个形状,并为其指定了“SaveInvWithNewName”宏,单击一个按钮然后转到...

祝福, 格雷格