看板 Visual_Basic 關於我們 聯絡資訊
我寫了一小段功能 大致如下: 若該檔不存在 則另存新檔 若該檔存在 則直接存檔 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
LPH66: 注意原先的 End If, 你原先的程式裡條件成立後有三行程式 09/09 00:50
LPH66: 改成後面這樣之後你在 Then 裡只執行第一行 09/09 00:51
LPH66: 後兩行會無條件執行 09/09 00:51
LPH66: 另外, 你可以查詢一下 Else 這個跟 If 常常放一起的關鍵字 09/09 00:52
seanlin10421: 那我可以把THEN之後的條件用:串成同一行嗎?@@ 09/09 01:22
MOONRAKER: then之後哪有什麼條件,那叫敘述。後面加endif就好了 09/09 11:23
MOONRAKER: 不需要用 : 這種還有行號時代的玩意 簡直退回40年前 09/09 11:24