用表格中的數據填寫表格

問題的形成

我們有一個數據庫(列表、表格——隨便你怎麼稱呼它),在一張紙上包含有關付款的信息 數據:

任務:為從此列表中選擇的任何所需條目快速打印出現金收據(付款、發票……)。 去!

步驟 1. 創建表單

在書的另一張紙上(我們稱這張紙 形成) 創建一個空表單。 您可以自己做,也可以使用現成的表格,例如從首席會計師雜誌的網站或 Microsoft 網站上獲取。 我得到了這樣的東西:

用表格中的數據填寫表格

在空單元格中(帳戶、金額、收款人 等)將從另一張表的付款表中獲取數據——稍後我們將處理這個問題。

第 2 步:準備付款表

在為我們的表格從表格中獲取數據之前,表格需要稍微現代化。 即,在表的左側插入一個空列。 我們將使用在我們要向表單中添加數據的行的對面輸入一個標籤(讓它成為英文字母“x”):

步驟 3. 鏈接表格和表單

對於通信,我們使用函數 VPR(VLOOKUP) - 你可以在這裡讀更多關於它的內容。 在我們的例子中,為了將數據表中標記為“x”的付款編號插入表格的單元格 F9,您必須在單元格 F9 中輸入以下公式:

=VLOOKUP(“x”,數據!A2:G16)

=VLOOKUP(“x”;數據!B2:G16;2;0)

那些。 翻譯成“可以理解的”,函數應該在數據表的A2:G16範圍內找到以字符“x”開頭的一行,並給出該行第二列的內容,即付款號。

表單上的所有其他單元格都以相同的方式填充——只有公式中的列號發生了變化。

為了用文字顯示金額,我使用了函數 自己的 來自 PLEX 附加組件。

結果應如下所示:

用表格中的數據填寫表格

第 4 步。所以沒有兩個“x”……

如果用戶對多行輸入“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 函數)

 

發表評論