使用 VBA 将数据从发票模板传输到日志(Excel)

使用 VBA 将数据从发票模板传输到日志(Excel)

我正在使用 Excel 2013 创建 VBA 代码,该代码允许我将数据从一个工作簿(来自 Excel 的发票模板)传输到另一个工作簿(发票日志)。

发票: 发票

日志: 日志

我需要将发票中的某些单元格转移到日志中。例如:

L4 (includes the invoice number) 
L13 (includes the date of the invoice) 
L58 (includes the total amount of the invoice) 
E13 (Billed to Name of Site) 
E25:E53 (includes patient names). 

在日志中,我想要:

L4=A2 
L13=B2 
L58=C2 
E13=D2 
E25:E53=E2 

我想要 E25:E53 范围内的名称计数出现在日志的 F2 单元格中。F2 为数量。

我希望将单元格范围 E25:53(仅限患​​者姓名)合并为一个单元格,并用分号分隔,例如“John Doe;Mary Ann;Sam Cook”。

此外,每次将新数据输入发票时,我都想从新行开始。日志的第一行将包含标题。请参阅以下链接以查看屏幕截图示例。

(我无法附加实际的 Excel 工作簿。如果您知道更好的方法,请告诉我)。

我当前拥有的代码是:

Sub Button3_Click()
Dim InvoiceNumber As Integer
Dim InvoiceDate As Date
Dim TotalAmt As Currency
Dim BillTO As String
Dim InmateNames As String
Dim Qty As Integer
    Worksheets("Invoice").Select
    InvoiceNo = Range("L4")
    InvoiceDate = Range("L13")
    TotalAmt = Range("L58")
    BillTO = Range("E13")
    Description = Range("E25:E53")
    Worksheets("Invoice Log").Select
    Worksheets("Invoice Log").Range("A1").Select
    If Worksheets("Invoice Log").Range("A1").Offset(1, 0) <> "" Then
    Worksheets("Invoice Log").Range("A1").End(x1Down).Select
    End If
    ActiveCell.Offset(1, 0).Select
    ActiveCell.Value = InvoiceNumber
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = InvoiceDate

由于某种原因,代码以“0”作为我的发票号。发票日期、总金额、账单金额和数量列工作正常。但是,患者姓名未填充。

答案1

您已invoicenumber声明,并且尝试获取其数据,但将值存储在中invoiceno

插入Option Explicit到模块的开头,它将有助于防止这些错误。

答案2

这个例子可以查看使用 excel 用户表单制作的预付发票示例:https://youtu.be/Qr-4of-38DI

在此发票模板中,包含文本框、列表框和按钮的用户表单用于快速输入客户和产品的数据。之前,可以通过文本框在列表中搜索所需数据。然后,当双击列表项或按下回车键时,项目的数据将输入到工作表中。创建的发票可以复制到选定的记录表中​​。

相关内容