表のデータをフォームに入力する

問題の定式化

シート上の支払いに関する情報を含むデータベース(リスト、テーブル - 好きなように呼んでください)があります 且つ:

仕事: このリストから選択した任意のエントリの現金領収書 (支払い、請求書など) をすばやく印刷します。 行け!

ステップ 1. フォームを作成する

本の別のシート (このシートを呼びましょう フォーム) 空のフォームを作成します。 あなたはそれを自分で行うことができます.たとえば、Chief Accountant誌のWebサイトまたはMicrosoft Webサイトから取得した既製のフォームを使用できます. 私はこのようなものを得ました:

表のデータをフォームに入力する

空のセル (アカウント、金額、受け取り元 など) 別のシートの支払いテーブルからデータを取得します。これについては少し後で説明します。

ステップ 2: 支払いテーブルの準備

フォームのテーブルからデータを取得する前に、テーブルを少し最新化する必要があります。 つまり、テーブルの左側に空の列を挿入します。 を使用して、フォームにデータを追加する行の反対側にラベル (英語の文字「x」とします) を入力します。

ステップ 3. テーブルとフォームのリンク

通信には、関数を使用します VPR(VLOOKUP) – 詳細については、こちらをご覧ください。 この場合、データ シートの「x」とマークされた支払い番号をフォームのセル F9 に挿入するには、セル F9 に次の数式を入力する必要があります。

=VLOOKUP(“x”,データ!A2:G16)

=VLOOKUP(“x”;データ!B2:G16;2;0)

それらの。 「理解できる」に翻訳すると、関数はデータシートの範囲 A2: G16 で文字「x」で始まる行を見つけ、この行の XNUMX 番目の列の内容、つまり支払い番号を提供する必要があります。

フォームの他のすべてのセルは同じ方法で入力されます。式の列番号のみが変更されます。

金額を言葉で表示するには、関数を使用しました 独自の PLEXアドオンから。

結果は次のようになります。

表のデータをフォームに入力する

ステップ4. 「×」がXNUMXつにならないように…

ユーザーが複数の行に対して「x」を入力すると、VLOOKUP 関数は最初に見つかった値のみを取得します。 このようなあいまいさを避けるには、シート タブを右クリックします。 且つ その後 原文 (ソースコード). 表示される Visual Basic エディター ウィンドウで、次のコードをコピーします。

Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Long Dim str As String If Target.Count > 1 Then Exit Sub If Target.Column = 1 Then str = Target.Value Application.EnableEvents = False r = Cells(Rows.Count , 2).End(xlUp).Row Range("A2:A" & r).ClearContents Target.Value = str End If Application.EnableEvents = True End Sub  

このマクロは、ユーザーが最初の列に複数の「x」を入力できないようにします。

それだけです! 楽しみ!

  • VLOOKUP 関数を使用して値を置き換える
  • VLOOKUP関数の改良版
  • PLEXアドオンからの単語数(Propis関数)

 

コメントを残す