[VBA ] if then的問題

看板Visual_Basic作者 (新竹慢跑健行新手)時間2年前 (2022/09/09 00:38), 編輯推噓1(106)
留言7則, 3人參與, 2年前最新討論串1/1
我寫了一小段功能 大致如下: 若該檔不存在 則另存新檔 若該檔存在 則直接存檔 SaveFileName = "E:\test.xlsx" '存檔 If Dir(SaveFileName) = "" Then .ActiveWorkbook.SaveAs (SaveFileName) mybook.Close Savechanges:=False '關閉工作表且不將修改儲存 .Quit '關閉Excel End If If Dir(SaveFileName) <> "" Then .ActiveWorkbook.Save mybook.Close Savechanges:=False '關閉工作表且不將修改儲存 .Quit '關閉Excel End If 以上 功能皆正常 然後我想把行數減短 就改成: SaveFileName = "E:\test.xlsx" '存檔 If Dir(SaveFileName) = "" Then .ActiveWorkbook.SaveAs (SaveFileName) mybook.Close Savechanges:=False '關閉工作表且不將修改儲存 .Quit '關閉Excel If Dir(SaveFileName) <> "" Then .ActiveWorkbook.Save mybook.Close Savechanges:=False '關閉工作表且不將修改儲存 .Quit '關閉Excel 到此 debug沒異常 但是執行起來 第二個if就掛了 不會save 請問這是何解??@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.16.202 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1662655119.A.07A.html

09/09 00:50, 2年前 , 1F
注意原先的 End If, 你原先的程式裡條件成立後有三行程式
09/09 00:50, 1F

09/09 00:51, 2年前 , 2F
改成後面這樣之後你在 Then 裡只執行第一行
09/09 00:51, 2F

09/09 00:51, 2年前 , 3F
後兩行會無條件執行
09/09 00:51, 3F

09/09 00:52, 2年前 , 4F
另外, 你可以查詢一下 Else 這個跟 If 常常放一起的關鍵字
09/09 00:52, 4F

09/09 01:22, 2年前 , 5F
那我可以把THEN之後的條件用:串成同一行嗎?@@
09/09 01:22, 5F

09/09 11:23, 2年前 , 6F
then之後哪有什麼條件,那叫敘述。後面加endif就好了
09/09 11:23, 6F

09/09 11:24, 2年前 , 7F
不需要用 : 這種還有行號時代的玩意 簡直退回40年前
09/09 11:24, 7F
文章代碼(AID): #1Z6XgF1w (Visual_Basic)
文章代碼(AID): #1Z6XgF1w (Visual_Basic)