✔ 最佳答案
問題(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