Excel送貨單=VLOOKUP不同的報價單

2009-01-24 7:18 pm
小弟正在制作一份送貨單,
而每位客人的(貨價)都有分別,
所以送貨單的貨價需因應客戶編號而指向不同的[報價單]
小弟不才, 試過不同方法都失敗
希各路高手教路

曾嘗試改變 "=VLOOKUP" 內的指向的 FILE NAME,
也試過用極有限的巨集知識
............................失敗....:_(
希望能指點如何完成以下動作"公式"及"巨集"均可

cell.A1 輸入 "003"
cell.B2 的 =VLOOKUP 函數指向 Excel File ...003.XLS
=VLOOKUP(A1,'[003.xls]Price'!$B:$D,3,0)

若把 cell.A1 的輸入已成 "PRICE" .
則 cell.B2 的 =VLOOKUP 函數指向 Excel File ...price.XLS
=VLOOKUP(A1,'[PRICE.xls]Price'!$B:$D,3,0)

多謝 ....... :_)

回答 (2)

2009-01-28 4:09 am
✔ 最佳答案
問題(1)中

=VLOOKUP(A1,'[003.xls]Price'!$B:$D,3,0)

即代表 VLOOKUP("003",'[003.xls]Price'!$B:$D,3,0),你是否應在 A1前也加上FILE ADDRESS?

如你輸入 003 EXCEL會出 3 ,你是否應該用改為"文字格式"輸入?

2009-01-24 17:42:48 補充:
問題(2)

這問題涉及多項VBA功能,要用到 USERFORM,業餘玩VBA的要做到也需要兩三天時間,更要詳細 [貨號], [貨名], [貨價] 的出現型態,如貨號的字串長度,DUPLICATE 的資料防止...。
專業寫VBA相信也要好幾小時。

簡單一點,你可以按 Ctrl+F 輸入貨號,找出貨號在那一行,人手改貨價。

2009-01-27 20:09:45 補充:
Q1


A2 輸入 File 名 1234
另有一個叫 1234.xls 正在開啟 (必須)
1234.xls內有一張 Sheet 叫 Price


=VLOOKUP(A1,'[1234.xls]Price'!$B:$D,3,0)
加入INDIRECT("..."&A2&"...")
即改為
=VLOOKUP(A1,INDIRECT("'["&A2&".xls]Price'!$B:$D"),3,0)

Q2

只提供基本做法,沒有防錯 及 空白輸入防止,貨號 及 貨價 必須輸入,否則錯誤。

設 [貨號] 在 B:B 及 [貨價] 在 D:D ,輸入 Module

2009-01-27 20:11:41 補充:
內容

Sub change_price()

findcell = InputBox("Enter Goods_No")

Columns("b:b").Find(What:=findcell).Offset(0, 2).Select

ActiveCell.Value = InputBox("The old price is " & ActiveCell.Value & ". Please enter the new price.")


End Sub

2009-01-27 20:22:42 補充:
可簡化成兩句

Sub change_price()

findcell = InputBox("Enter Goods_No")

Columns("b:b").Find(What:=findcell).Offset(0, 2).Value = InputBox("The old price is " & Columns("b:b").Find(What:=findcell).Offset(0, 2).Value & ". Please enter the new price.")

End Sub
2009-01-25 7:10 pm
多謝 khshiu22021975 的意見
簡單說
Q1 是希望 Vlookup 按 [不同] 的輸入, 在 [不同] 的 File 內找資料
Q2 在 Cell 或 MessageBox 內輸入 [貨號] 及[新價] Summit 後
1. goto 相關 "貨號"
2. 向右跳 2 cells
3. 更換 [貨價] 的內容成為 "新價"


收錄日期: 2021-04-13 16:23:08
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20090124000051KK00397

檢視 Wayback Machine 備份