返回列表 上一主題 發帖

[發問] 請問能否指定某欄位只抓最新欄位的數據?

有範本嗎?!

TOP

回復 6# 997531

目前我想到的最佳解必須開啟巨集,
首先你先按下列步驟開啟開發者模式,
https://ppt.cc/fU3nhx
然後將下面這段程式碼貼在模組中。
  1. Function RowLastData(SheetName As String, PT As Range)
  2.     RowLastData= Sheets(SheetName).Cells(Cells.Rows.Count, PT.Column).End(xlUp)
  3. End Function
複製代碼
VBA.gif
這個是自創函數,
主要功能是回傳該儲存格所屬的欄位中最後一筆的資料
RowLastData(工作表名稱,儲存格)

例1:RowLastData("登記表",登記表!F3)="10800"
即代表在「登記表」這個工作表中,與「登記表!F3」相同的欄位「F」最後一筆的資料是「10800」
例2:RowLastData("庫存表",登記表!D3)="A20"
即代表在「庫存表」這個工作表中,與「登記表!D3」相同的欄位「D」最後一筆的資料是「A20」

試作.zip (27.91 KB)

TOP

回復 8# 997531

請將VBA函數增加這行「Application.Volatile」
更改後如下。
  1. Function RowLastData(SheetName As String, PT As Range)
  2.     Application.Volatile
  3.     RowLastData = Sheets(SheetName).Cells(Cells.Rows.Count, PT.Column).End(xlUp)
  4. End Function
複製代碼
詳細請參考這篇文章
http://club.excelhome.net/thread-176669-1-1.html

TOP

回復 10# 准提部林

准提大大,
謝謝你回饋的意見,
想跟你請教一下「9E+307」這是什麼意思?有什麼用意?
謝謝!

TOP

回復 12# 准提部林


實在太感謝你了!
又學到了一課!

如果 LOOKUP 函數找不到 lookup_value,
就會比對 lookup_vector 中小於或等於 lookup_value 的最大值,
所以設一個極大的lookup_value。
https://support.office.com/zh-tw/article/lookup-%E5%87%BD%E6%95%B8-446d94af-663b-451d-8251-369d5e3864cb


另外確認一下 B3的函式是不是這樣設定會更準確?
  1. =IFERROR(LOOKUP(9E+307,OFFSET(登記表!$A:$A,,MATCH(A3,登記表!$1:$1,)+3)),0)
複製代碼

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題