[VBA ] if then的问题

楼主: seanlin10421 (火车便当)   2022-09-09 00:38:36
我写了一小段功能 大致如下:
若该档不存在 则另存新档
若该档存在 则直接存盘
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
请问这是何解??@@
作者: LPH66 (-6.2598534e+18f)   2022-09-09 00:50:00
注意原先的 End If, 你原先的程式里条件成立后有三行程式改成后面这样之后你在 Then 里只执行第一行后两行会无条件执行另外, 你可以查询一下 Else 这个跟 If 常常放一起的关键字
楼主: seanlin10421 (火车便当)   2022-09-09 01:22:00
那我可以把THEN之后的条件用:串成同一行吗[email protected]@
作者: MOONRAKER (㊣牛鹤鳗毛人)   2022-09-09 11:23:00
then之后哪有什么条件,那叫叙述。后面加endif就好了不需要用 : 这种还有行号时代的玩意 简直退回40年前

Links booklink

Contact Us: admin [ a t ] ucptt.com