作者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/cn.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