Я использую 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 (только имена пациентов) был объединен в одну ячейку, разделенную точкой с запятой, например:«Джон Доу; Мэри Энн; Сэм Кук».

Кроме того, я хотел бы начинать с новой строки каждый раз, когда в счет вводятся новые данные. Первый ряд журнала будет иметь заголовки. Смотрите ссылку ниже для доступа к скриншотам для примеров.

(Я не могу прикрепить актуальную книгу 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" в качестве моего счета №. Столбцы "Дата выставления счета", "Общая сумма", "Оплачено" и «Кол-во» работают нормально. Впрочем, и имена пациентов не пополняются.

2 ответа2

0

Вы объявили invoicenumber а также пытаетесь получить его данные, но вы сохраняете значение в invoiceno .

Вставьте Option Explicit в начале вашего модуля, это поможет предотвратить эти ошибки.

0

Этот пример может быть рассмотрен для примера расширенного счета-фактуры, созданного с помощью пользовательской формы Excel:https://youtu.be/Qr-4of-38DI

В этом шаблоне счета-фактуры пользовательские формы, содержащие текстовое поле, список и кнопки, используются для быстрого ввода данных о клиентах и продуктах. Возможно, запрашиваемые данные можно искать в списке через текстовые поля. Затем при двойном щелчке элемента списка или нажатии клавиши ввода данные элемента вводятся в лист. Созданный счет-фактура может быть скопирован на выбранный лист записи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .