作者seanlin10421 (新竹慢跑健行新手)
看板Visual_Basic
標題[VBA ] if then的問題
時間Fri Sep 9 00:38:36 2022
我寫了一小段功能 大致如下:
若該檔不存在 則另存新檔
若該檔存在 則直接存檔
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://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1662655119.A.07A.html
1F:推 LPH66: 注意原先的 End If, 你原先的程式裡條件成立後有三行程式 09/09 00:50
2F:→ LPH66: 改成後面這樣之後你在 Then 裡只執行第一行 09/09 00:51
3F:→ LPH66: 後兩行會無條件執行 09/09 00:51
4F:→ LPH66: 另外, 你可以查詢一下 Else 這個跟 If 常常放一起的關鍵字 09/09 00:52
5F:→ seanlin10421: 那我可以把THEN之後的條件用:串成同一行嗎?@@ 09/09 01:22
6F:→ MOONRAKER: then之後哪有什麼條件,那叫敘述。後面加endif就好了 09/09 11:23
7F:→ MOONRAKER: 不需要用 : 這種還有行號時代的玩意 簡直退回40年前 09/09 11:24