简体   繁体   English

VBA Excel功能语法

[英]VBA excel function syntax

I need to write an excel macro, to read length of triangle sides and check if this triangle exists, also if it exists macro should define type of triangle, then output result. 我需要编写一个excel宏,以读取三角形边的长度并检查此三角形是否存在,如果存在,宏也应定义三角形的类型,然后输出结果。 Here is my code - 这是我的代码-

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

I'll appreciate any help. 我将不胜感激。

We must: 我们必须:

  1. fix the Dim 修复Dim
  2. return the answer: 返回答案:



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

在此处输入图片说明

I think Select Case is a more appropriate syntax in such cases 我认为Select Case在这种情况下是更合适的语法

moreover you can get rid of backing variable 此外,您可以摆脱支持变量

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