繁体   English   中英

VBA Excel功能语法

[英]VBA excel function syntax

我需要编写一个excel宏,以读取三角形边的长度并检查此三角形是否存在,如果存在,宏也应定义三角形的类型,然后输出结果。 这是我的代码-

Public Function tri(a, b, c)
    Public answer As String
    If a + b <= c Or b + c <= a Or c + a <= b Then
        answer = "triangle doesn't exist"
    ElseIf a = b = c Then
        answer = "eq triangle"
    ElseIf a = b Or c = a Or b = c Then
        answer = "isosceles triangle"
    ElseIf (a + b) ^ 2 = c ^ 2 Or (a + c) ^ 2 = b ^ 2 Or (c + b) ^ 2 = a ^ 2 Then
        answer = "right triangle"
    Else
        answer = "regular triangle"
    End If
    ActiveCell = answer
End Function

我将不胜感激。

我们必须:

  1. 修复Dim
  2. 返回答案:



Public Function tri(a, b, c) As String
    Dim answer As String
    If a + b <= c Or b + c <= a Or c + a <= b Then
        answer = "triangle doesn't exist"
    ElseIf a = b = c Then
        answer = "eq triangle"
    ElseIf a = b Or c = a Or b = c Then
        answer = "isosceles triangle"
    ElseIf (a + b) ^ 2 = c ^ 2 Or (a + c) ^ 2 = b ^ 2 Or (c + b) ^ 2 = a ^ 2 Then
        answer = "right triangle"
    Else
        answer = "regular triangle"
    End If

    tri = answer
End Function

在此处输入图片说明

我认为Select Case在这种情况下是更合适的语法

此外,您可以摆脱支持变量

Public Function tri(a, b, c) As String
    Select Case True
        Case a + b <= c Or b + c <= a Or c + a <= b
            tri = "triangle doesn't exist"
        Case a = b = c
            tri = "eq triangle"
        Case a = b Or c = a Or b = c
            tri = "isosceles triangle"
        Case (a + b) ^ 2 = c ^ 2 Or (a + c) ^ 2 = b ^ 2 Or (c + b) ^ 2 = a ^ 2
            tri = "right triangle"
        Case Else
            tri = "regular triangle"
    End Select
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM