Re: [算表] VBA裡怎麼讓IFERROR秀出空白

看板Visual_Basic作者 (我是保羅小小)時間6年前 (2018/09/06 09:42), 編輯推噓2(200)
留言2則, 2人參與, 6年前最新討論串2/2 (看更多)
※ 引述《Ibrahimovic (伊布)》之銘言: : ※ [本文轉錄自 Office 看板 #1Ra6Vo7n ] : 作者: Ibrahimovic (伊布) 看板: Office : 標題: [算表] VBA裡怎麼讓IFERROR秀出空白 : 時間: Thu Sep 6 07:34:07 2018 : 軟體: Office : 版本: 2016 : 原本儲存格N2的內容 =IFERROR(VLOOKUP(M2,A:B,2,0),"") : 想把它改成用VBA寫 : 可是後面的 "" : 試過好次還是寫不出來 : 想請教諸位這要何解? 將Excel公式寫進VBA裡面大致有兩種寫法, 第一種為正規寫法,就是引用Application內的WorksheetFunction屬性, 底下會有多種Excel函數,供你選擇,例如本例的寫法便會是 Cells(2, "N") = Application.WorksheetFunction.IfError _ (Application.WorksheetFunction.VLookup(Cells(2, "M"), _ Range("A2:B1048576"), 2, 0), "") 第二種寫法為暴力寫法,就是直接把公式"硬塞"進去儲存格內, 例如本例的寫法就會是 Cells(2, "N") = "=iferror(vlookup(M2,A:B,2,0)," & Chr(34) & Chr(34) & ")" 稍微解釋一下,雙引號(")在VBA內被認定是字串定義符號, 所以如果要真正打出雙引號",則必須打兩次,例如: Range("A1")="""" 此時A1儲存格會顯示" 所以如果按照你最初的公式要用這種打法就會變成... Cells(2,"N")="=IFERROR(VLOOKUP(M2,A:B,2,0)," & """""" & ")" 但這樣太容易出錯(漏打或多打),所以可以直接用chr()的方式來打出雙引號 雙引號的chr()為34,即chr(34)= " 因此上述的法二就是用這種方式,也是我個人認為較不容易出錯的寫法~ 另外還有其他相關的chr表,貼上一個部落客整理的資訊,供大家做參考 http://somebabytina.pixnet.net/blog/post/29868252-chr%E8%A1%A8 希望有幫助到你 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.86.143 ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1536198174.A.23C.html

09/06 21:44, 6年前 , 1F
神人
09/06 21:44, 1F

09/06 23:14, 6年前 , 2F
感謝您~~
09/06 23:14, 2F
文章代碼(AID): #1Ra8OU8y (Visual_Basic)
文章代碼(AID): #1Ra8OU8y (Visual_Basic)