亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Excel VBA中使用Implements

如何在Excel VBA中使用Implements

如何在Excel VBA中使用Implements我正在嘗試為工程項目實現一些形狀并將其抽象出來用于一些常見功能,以便我可以使用通用程序。我正在嘗試做的是有一個調用的接口,cShape并擁有cRectangle并cCircle實現cShape我的代碼如下:cShape 接口Option ExplicitPublic Function getArea()End FunctionPublic Function getInertiaX()End FunctionPublic Function getInertiaY()End FunctionPublic Function toString()End FunctioncRectangle 類Option ExplicitImplements cShapePublic myLength As Double ''going to treat length as dPublic myWidth As Double ''going to treat width as bPublic Function getArea()     getArea = myLength * myWidthEnd FunctionPublic Function getInertiaX()     getInertiaX = (myWidth) * (myLength ^ 3)End FunctionPublic Function getInertiaY()     getInertiaY = (myLength) * (myWidth ^ 3)End FunctionPublic Function toString()     toString = "This is a " & myWidth & " by " & myLength & " rectangle."End FunctioncCircle 類Option ExplicitImplements cShapePublic myRadius As DoublePublic Function getDiameter()     getDiameter = 2 * myRadiusEnd FunctionPublic Function getArea()     getArea = Application.WorksheetFunction.Pi() * (myRadius ^ 2)End Function''Inertia around the X axisPublic Function getInertiaX()     getInertiaX = Application.WorksheetFunction.Pi() / 4 * (myRadius ^ 4)End Function''Inertia around the Y axis''Ix = Iy in a circle, technically should use same functionPublic Function getInertiaY()     getInertiaY = Application.WorksheetFunction.Pi() / 4 * (myRadius ^ 4)End FunctionPublic Function toString()     toString = "This is a radius " & myRadius & " circle."End Function問題是每當我運行我的測試用例時,它都會出現以下錯誤:編譯錯誤:對象模塊需要為接口'?'實現'?'
查看完整描述

3 回答

?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

關于VBA和“Implements”語句有兩個未記載的附加內容。

  1. VBA不支持派生類的繼承接口的方法名稱中的非核心字符“_”。它不會使用cShape.get_area等方法編譯代碼(在Excel 2007下測試):VBA將為任何派生類輸出上面的編譯錯誤。

  2. 如果派生類沒有實現在接口中命名的自己的方法,則VBA會成功編譯代碼,但該方法將通過派生類類型的變量無法實現。


查看完整回答
反對 回復 2019-07-26
  • 3 回答
  • 0 關注
  • 1361 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號