標題:
EXCEL VBS
[打印本頁]
作者:
kyhuang
時間:
2013-2-26 22:13
標題:
EXCEL VBS
各位前輩好:
該問題苦思已久,敬請幫忙,謝啦!!
以C1檔名(不包括副檔名)尋找A1,如有相符以B1取代並顯示於D1
如找不到標註X.詳如附件樣本.
先謝啦 !!
[attach]14256[/attach]
作者:
lukychien
時間:
2013-2-27 01:44
回復
1#
kyhuang
請試看看這樣行嗎
雖然結果是對的,但總覺得好像那裡怪怪的?
D1=IFERROR(CONCATENATE(VLOOKUP(LEFT(C1,8),A:B,2,0),IF(ISNUMBER(FIND("-",C1)),IF(FIND("-",C1),MID(C1,FIND("-",C1),2),""),""),".jpg"),"X")
作者:
kyhuang
時間:
2013-2-28 10:58
回復
2#
lukychien
感謝,好像不行.是將該行資料貼到D1嗎?出現"#NAME?"
作者:
lukychien
時間:
2013-2-28 23:58
回復
3#
kyhuang
問題應該是出在Office 2003看不懂部份2007用的公式吧!! (如, IFERROR)
請再試一下,並告知是否可行
D1=IF(ISERROR(VLOOKUP(LEFT(C1,8),A:B,2,0)),"X",CONCATENATE(VLOOKUP(LEFT(C1,8),A:B,2,0),IF(ISNUMBER(FIND("-",C1)),IF(FIND("-",C1),MID(C1,FIND("-",C1),2),""),""),".jpg"))
作者:
Hsieh
時間:
2013-3-1 00:30
本帖最後由 Hsieh 於 2013-3-1 00:35 編輯
回復
1#
kyhuang
Sub ex()
Set d = CreateObject("Scripting.Dictionary")
For Each a In Range([A1], [A1].End(xlDown))
d(a.Value) = a.Offset(, 1)
Next
For Each a In Range([C1], [C1].End(xlDown))
If d(Left(a, 8)) = "" Then
a.Offset(, 1) = "X"
Else
a.Offset(, 1) = Replace(a, Left(a, 8), d(Left(a, 8)))
End If
Next
End Sub
複製代碼
如果使用函數
D1公式
=IF(COUNTIF(A:A,LEFT(C1,8))=0,"X",SUBSTITUTE(C1,LEFT(C1,8),VLOOKUP(LEFT(C1,8),$A$1:$B$11,2,0)))
向下複製
作者:
kyhuang
時間:
2013-3-1 17:31
回復
2#
lukychien
感謝兄台成功了,僅少部分可能多一碼轉不過來
008ACH009 2120 008ACH009-1.JPG X
正確結果應為
008ACH009 2120 008ACH009-1.JPG 2120-1.JPG
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)