if TypeName(文件名) = "Boolean" thenExit SubEnd If那個文件名是用Application.GetOpenFilename方法輸入的文件名。上面那個判斷怎么理解,高手解剖下。為什么打開后選取了文件就BOOLEAN就是TRUE,如果沒打開的話就執行Exit Sub呢?????如果點擊取消是FALSE的話,為什么還達到條件而退出了呢?而選擇了文件程序才會跳過去繼續執行你這解釋不通
2 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
duvetwong描述的很清楚,是你沒理清邏輯
TypeName返回的是數據類型的名稱
If判斷的是【TypeName() = "Boolean"】這整個一個表達式的結果,當然它也是Boolean,但與引號內的Boolean不同啊,更與它是True或False無關
GetOpenFilename返回值是String或String數組,取消時則返回False,TypeName取得它的類型時就會返回Boolean(String),與等號后面的"Boolean"相符,所以【TypeName() = "Boolean"】為True,所以If代碼段中的代碼將被執行,在本例中也就是Exit Sub,只有當用戶選擇了文件并點確定時,才會執行End If后面的代碼段

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
TypeName是判斷參數的數據類型,這個意思是判斷“文件名”這個變量的數據類型,如果數據類型是Boolean,那么就exit sub
Application.GetOpenFilename在點擊“確定”時會返回選中的文件名數組,點擊“取消”時會返回一個Boolean型的False,所以判斷是否是Boolean型的值就可以判斷出點的是確定還是取消
添加回答
舉報
0/150
提交
取消