Function getArea(a As Double,b As Double,c As Double) As Double Dim perimeter As Double Dim area As Double perimeter = (a + b + c) / 2 area = Sqr(perimeter * (perimeter - a) * (perimeter - b) * (perimeter - c)) getArea = area End Function 把这个函数放到标准模块中就行了,然后向调用excel的公式一样调用这个函数就行了. 再问: 还有,怎么把函数在标准模块中添加?这个代码是写在哪里,写在userform的代码里面吗? 再答: 看你想怎么用了,如果你已经做了userform,那你就可以把这个放到userform里,然后你代码里调用就行了,传递三边的数给函数,会返回给你面积值。 如果你想象使用excel的Sum函数公式那样在单元格里使用,那就得放到模块里了,从VBA project点击右键插入标准模块,把上面的函数放进去就行了。 声明一下:我上面写的程序没有错误判断,没做三角形三边是否符合要求的判断。 再问: j就是这样的一个userform,好像在userform中输入代码不行啊,能不能解答一下?大神,求求求 再答: 那你把代码写在计算的按钮click事件中,然后a=边长a输入框的值, b=边长b输入框的值, c=边长c输入框的值,面积label的值=area。我不知道你做的输入框和label的变量名是什么,写个代码你再根据你的修改一下Private Sub CommandButton1_Click() Dim area As Double Dim perimeter As Double perimeter = (CDbl(TextBox1.Value) + CDbl(TextBox2.Value) + CDbl(TextBox3.Value)) / 2 area = Sqr(perimeter * (perimeter - CDbl(TextBox1.Value)) * (perimeter - CDbl(TextBox2.Value)) * (perimeter - CDbl(TextBox3.Value))) Label5.Caption = areaEnd Sub