返回列表 上一主題 發帖

EXCEL VBS

EXCEL VBS

[版主管理留言]
  • Hsieh(2013-2-28 11:25): 請上傳檔案供測試

各位前輩好:

問題苦思已久,敬請幫忙,謝啦!!

以C1檔名(不包括副檔名)尋找A1,如有相符以B1取代並顯示於D1
如找不到標註X.詳如附件樣本.

先謝啦 !!

回復 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")

TOP

回復 2# lukychien


    感謝,好像不行.是將該行資料貼到D1嗎?出現"#NAME?"

TOP

回復 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"))

TOP

本帖最後由 Hsieh 於 2013-3-1 00:35 編輯

回復 1# kyhuang
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For Each a In Range([A1], [A1].End(xlDown))
  4.    d(a.Value) = a.Offset(, 1)
  5. Next
  6. For Each a In Range([C1], [C1].End(xlDown))
  7.    If d(Left(a, 8)) = "" Then
  8.    a.Offset(, 1) = "X"
  9.    Else
  10.    a.Offset(, 1) = Replace(a, Left(a, 8), d(Left(a, 8)))
  11.    End If
  12. Next
  13. 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)))
向下複製
學海無涯_不恥下問

TOP

回復 2# lukychien


    感謝兄台成功了,僅少部分可能多一碼轉不過來

008ACH009  2120  008ACH009-1.JPG  X
正確結果應為
008ACH009  2120  008ACH009-1.JPG  2120-1.JPG

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題